Coder Social home page Coder Social logo

stroyprombeton's People

Contributors

artemijrodionov avatar begor avatar chelovek-18 avatar duker33 avatar dveselov avatar liza-andreeva avatar ozyryanov avatar shvedovskiy avatar yozhezhi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

artemijrodionov

stroyprombeton's Issues

tests_selenium_admin.py:502-504: <body>Fix a...

The puzzle TABLEEDITOR-TEST-675949b7 from #TABLEEDITOR-TEST has to be resolved:

# @todo #TABLEEDITOR-TEST Fix a TableEditor.test_new_entity_creation test.
# test_new_entity_creation does not pass.
# You can find error traceback here: https://ci.fidals.com/fidals/stroyprombeton/106

The puzzle was created by Artemiy on 22-Dec-17.

Estimate: 0 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Drop product doubles

Оригинал задачи от Сеошников:
http://client.webit.ru/?act=8#que_id=66602


Полные дубли
http://www.stroyprombeton.ru/gbi/products/12237/
http://www.StroyPromBeton.ru/gbi/products/9026/

http://www.stroyprombeton.ru/gbi/products/12240/
http://www.stroyprombeton.ru/gbi/products/12228/

http://www.stroyprombeton.ru/gbi/products/13902/
http://www.stroyprombeton.ru/gbi/products/13903/

http://www.stroyprombeton.ru/gbi/products/4056/
http://www.stroyprombeton.ru/gbi/products/4046/

Чтобы найти все, нужно сделать выгрузку из базы данных и найти дубли по h1, харакетристикам, цене. От дублей нужно избавиться.

dev.py:18-19: Включить в dev-среде...

The puzzle 106-4167c824 (from #106) in stroyprombeton/settings/dev.py (lines 18-19) has to be resolved: "Включить в dev-среде django-debug-toolbar по-умолчанию Но в CI его нужно отключать, т.к. возникают ошибки"

The puzzle was created by Dima Veselov on 13-Oct-17.

Estimate: 0 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

docker-compose.yml:59-60: Check why rabbitmq exposes it's...

The puzzle 142-b10915e2 from #142 has to be resolved:

# @todo #142:30m Check why rabbitmq exposes it's ports to host machine.
# And write doc or request some fix.

The puzzle was created by Artemiy on 15-Jun-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Makefile:15-15: run backup before deploy

Зависит от #130


The puzzle 117-cb0461b4 (from #117) in docker/Makefile (lines 15-15) has to be resolved: "run backup before deploy"

The puzzle was created by Dima Veselov on 11-Oct-17.

Estimate: 0 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Проверка refarm-site совместно с stroyprombeton

Когда я вношу изменения в stroyprombeton я могу проверить работоспособность перезапустив его; есть ли возможность проверить в рабочем режиме refarm-site, т.к. бывают задачи когда требуется добавление взаимодействующего кода сразу и в stroyprombeton и refarm-site, что исключает возможность немедленной проверки?

Настрой систему резервного копирования

Список того, что нужно сохранять:

  • База данных
  • Медиаданные
  • Статика (?)

Желательно делать это через определенные интервалы (например, одновременно иметь в доступе дневной, недельный и месячный бекап базы данных)

Tags feature

It's already implemented on SE.

Some UI decision is needed here

CI is broken

CI says Cannot configure both commands and custom attributes [depends_on] instead of launching

image

Resurrect stage

Оживи stage.stroyprombeton.ru
Он должен юзать свою собственную базу.
Деплоить его будем руками, отдельно от прода

STB Fix mobile markup on SearchPage

trello origin

Сейчас по URL /search/ отдается страница, плохо адаптированная под мобильные устройства, в первую очередь это касается таблицы найденных продуктов.

Как вариант -- сделать мобильный лейаут подобным таковому на страницах категорий.

Оптимизировать изображения

Сервис Google PageSpeed рекомендует оптимизировать изображения, чтобы уменьшить размер страницы
Сделать это нативными инструментами (чистый питон и какой-нибудь PIL) - трудно (готовых библиотек не существует?)
Но есть, например, вот такая библиотека, которая приносит с собой optipng, jpegtran и другие бинарники для оптимизации изображений.
Еще нужно определиться, как поступать с изображениями - оптимизировать их при сохранении (перезаписывать метод save или получать сигнал post_save) или периодически запускать команду с оптимизацией (так же, как мы обновляем прайслисты в se)

Related to #107

tests_selenium_admin.py:259-260: Fix...

The puzzle 137-e5de5ce7 from #137 has to be resolved:

# @todo #137 Fix test_tree_redirect_to_entity_site_page test.
# This test shouldn't work because of new tab opening.

The puzzle was created by Artemiy on 30-May-18.

Estimate: 0 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

TableEditor process user UI errors

Для Table Editor нужно написать UI отклики для success\fail взаимодействия с сервером.
// TODO: Make UI feedback for user about success/fail.

Нужно протестить и проверить все корнер кейсы.

.drone.yml:61-63: Explore why drone `lint` and...

The puzzle 142-2b52b0ff from #142 has to be resolved:

# @todo #142:60m Explore why drone `lint` and `docker-build` use .env
# Both of them should not as it seems. Write doc why or rm them.
# in case if "Push Hooks" is enabled in Drone settings GUI

The puzzle was created by Artemiy on 15-Jun-18.

Estimate: 60 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Boost site speed

Сайт можно ускорить, что позитивно скажется на сео и юзабилити.

Для этого просто попытаемся соблюсти рекомендации PageInsights
https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fwww.stroyprombeton.ru%2F&tab=desktop

Не все из них разумны для нашего проекта. Неразумные документируй в rst.
В этой задаче особенно важно соблюдать технику pdd. Кэп.

Refactor config arch

Depends on #142


Сейчас у нас бардак с конфигами. Есть много неудобных моментов.
Вот они:

  • быстро поменять django-конфиг на проде нельзя. Для этого нужно пушиться-билдиться-деплоиться
  • сами конфиги рандомно перемешаны между .env и django-конфигами

Вот как предлагаю решить:

  • из settings/ сносим и dev.py и prod.py
  • оставляем в settings/ только local.py.dist
  • для прода/дева/локали будем копипастить свои local.py/prod.py/dev.py и монтировать их через volumes внутрь питон-контейнеров
  • через .env будет заходить только то, что шарится между сервисами. Например DATABASE_URL. Все уникальные для питон-сервиса значения - только в local.py/prod.py/dev.py
  • юзаем env_file в docker-compose файле, вместо environment, чтобы реюзать переменные. У нас будет несколько .env файлов для разных сервисов, которые будут указываться в -env_file
  • фиксим доки readme, и Makefile

Make Table Editor adaptive

Делаем TableEditor адаптивным.
Таблица должна растягиваться на всю ширину экрана

Автор: Саня

Make's receipt

Current implementation of dev receipt does not work correctly. It builds the production images for dev deployment.

Fix it

Stabilize selenium tests as on SE

Иногда тесты падают из-за того, что Selenium не успевает выполнить запрошенные действия, а django-тесты пытаются получить результат:

======================================================================
FAIL: test_new_entity_creation (stroyprombeton.tests.tests_selenium_admin.TableEditor)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/usr/local/lib/python3.6/unittest/case.py", line 601, in run
    testMethod()
  File "/drone/src/github.com/fidals/stroyprombeton/pull/135/stroyprombeton/tests/tests_selenium_admin.py", line 531, in test_new_entity_creation
    self.assertEqual(name_cell.get_attribute('title'), new_entity_text)
  File "/usr/local/lib/python3.6/unittest/case.py", line 821, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/usr/local/lib/python3.6/unittest/case.py", line 1194, in assertMultiLineEqual
    self.fail(self._formatMessage(msg, standardMsg))
  File "/usr/local/lib/python3.6/unittest/case.py", line 666, in fail
    raise self.failureException(msg)
AssertionError: 'A' != 'A New stuff'
- A
+ A New stuff

Артемий сделал тесты SE более-менее стабильными в fidals/shopelectro#167, многие из них имеют общие части с STB. Поэтому можно посмотреть, что было сделано в SE для стабилизации тестов.

tests_selenium.py:232-236: Setting a number of items...

The puzzle 137-a7a31c49 from #137 has to be resolved:

# @todo #137 Setting a number of items flush all other fields on order page.
# Steps to reproduce the bug:
# 1. Add products to a cart and open an order page
# 2. Fill the fields (name, email, phone, etc.)
# 2. Change the number of any item

The puzzle was created by Artemiy on 30-May-18.

Estimate: 0 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

docker-compose.yml:42-43: Validate if `.env` is full Is...

The puzzle 150-9a03496d from #150 has to be resolved:

# @todo #150 Validate if `.env` is full
# Is full means '.env` contains all keynames from `.env.dist`

The puzzle was created by duker33 on 26-Dec-17.

Estimate: 0 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Fix microdata on CategoryPage and ProductPage

"Напомню, что я обеспокоен нашей микроразметкой

Действительно, на данный момент имеются ошибке в разметке:

  1. Используется микроформат hCard. Яндекс ставит обязательным условием наличие свойств fn и org, т.е. название организации. Поэтому нужно добавить:
<span class="fn org">СТК-Промбетон</span>
  1. Используется разметка Open Graph. Яндекс ставит обязательным условием наличие метатега og:image. Поэтому нужно добавить:
<meta property="og:image" content="урл_картинки_на_странице">

Эта картинка будет показываться в превью, которое формируется при публикации ссылки на страницу в социальных сетях и других интернет-сервисах. Например в карточках товара нужно размечать этим тегом фото товара. На остальных страницах можно разметить, например, логотип компании.

  1. Фото в карточках размечены свойством itemprop="image", без привязки к кому-либо типу разметки Schema.org. Поэтому стоит добавить разметку Product. Пример разметки для карточки http://www.stroyprombeton.ru/gbi/products/4175/:
<div itemscope itemtype="http://schema.org/Product">

<h1 itemprop="name">Плита дорожная железобетонная ПДН</h1>

<span itemprop="description"><p>Организуем доставку Плита дорожная железобетонная марки ПДН по всей России автомобильным, железнодорожным, водным транспортом. Можно воспользоваться самовывозом.</p><br><p>У нас нет фиксированной цены доставки, поэтому звоните менеджеру, чтобы ее узнать. Менеджер поможет выбрать способ доставки, рассчитает стоимость и назовет срок.</p><br><p>На каждое изделие выдается паспорт в соответствии с ГОСТ 13015-2012.</p></span>

<img class="img-centered img-responsive" src="/static/images/common/image-thumb.3cd446960424.png" alt="Фотография Плита дорожная железобетонная" itemprop="image">

<div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 

<span itemprop="price">17600</span>

<span itemprop="priceCurrency" content="RUB">руб</span>

</div>

</div>

Т.е. данными тегами нужно разметить уже имеющиеся элементы в коде: h1, шаблонный текст, цену

В категориях, в качестве картинки, можно использовать логотип, но лучше нижнюю картинку из текста. Соответственно во все категории нужно добавить такую картинку. В http://client.webit.ru/?act=8&showall=1#que_id=66598 я указывал это в рекомендациях.

Broken link photo on search page

Пример страницы:
http://www.stroyprombeton.ru/search/?term=%D1%82%D1%80%D1%83%D0%B1

Нас интересуют значки фотика. При клике они должны открывать модалку с фоткой изделия на весь экран.

На category page тоже есть линки на фото в аналогичной таблице и они работают.
Возьми поведение по клику на оттуда.

Create backup solution. se2

On SE too

Now we have (not working) bash backup script launched on every deploy.
Let's create separated container with inner backup tool scheduled by cron or fs listener daemon.

What backup tool should do:

  • we run it as docker service with mounted for backup folders: db, images, config
  • this service backups incremental changes on outer serv via network. Runs on cron schedule or by fs events

I think some sort of rsync or of it's simple wrapper will enough for us.
We required vesion control, delta transfer and network support features.

List of tools available here:
https://wiki.archlinux.org/index.php/Synchronization_and_backup_programs

Makefile:67-68: Resurrect backup system. Right now it's...

The puzzle 142-0169d767 from #142 has to be resolved:

# @todo #142:60m Resurrect backup system.
# Right now it's too dangerous and not used.

The puzzle was created by Artemiy on 15-Jun-18.

Estimate: 60 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

tests_selenium_admin.py:14: Remove the rest of wait(...)...

The puzzle 137-7a497511 from #137 has to be resolved:

# @todo #137:120m Remove the rest of wait(...) calls in favor of explicit the WebDriverWait.

The puzzle was created by Artemiy on 30-May-18.

Estimate: 120 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Add company name to microdata

#106

Не сделано:

  1. Используется микроформат hCard. Яндекс ставит обязательным условием наличие свойств fn и org,
    т.е. название организации. Поэтому нужно добавить:
    [code]
    СТК-Промбетон
    [/code]

Вот проверка валидатором: https://webmaster.yandex.ru/tools/microtest/

1509378220bezimyanniy

tests_selenium.py:446-447: Repair Search test...

The puzzle 160-a0d43631 from #160 has to be resolved:

# @todo #160 Repair Search test
# `stroyprombeton.tests.tests_selenium.Search#test_autocomplete_see_all_item`

The puzzle was created by duker33 on 13-Jan-18.

Estimate: 0 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

base.py:231-233: List mail recipients in config Remove...

The puzzle 160-956c9262 from #160 has to be resolved:

# @todo #160 List mail recipients in config
# Remove `EMAIL_RECIPIENT` and `SHOP_EMAIL` settings
# and env vars. And add EMAIL_RECIPIENTS

The puzzle was created by duker33 on 13-Jan-18.

Estimate: 0 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Category ChoiceField autocomplete

trello origin

В Админке добавляем автокомплит при создании категорий http://prntscr.com/eepm4q

Речь идёт о Category EditPage. Вот пример:
http://www.stroyprombeton.ru/admin/stroyprombeton/categorypage/15312/change/

Если нажмёшь на поле "Родитель", узнаешь наш скрин. Сейчас там неудобненько, т.к. ~200 категорий нужно скроллить, чтобы найти нужную для выбора

search.py:16-17: Create active() shortcut filter...

The puzzle 85-600a6da3 (from #85) in stroyprombeton/views/search.py (lines 16-17) has to be resolved: "Create active() shortcut filter instead of using .filter(page__is_active=True)"

The puzzle was created by duker33 on 20-Nov-17.

Estimate: 0 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

docker-compose.yml:83-84: Resurrect coala. Already done...

The puzzle 142-a64f413d from #142 has to be resolved:

# @todo #142:60m Resurrect coala.
# Already done it at se#302.

The puzzle was created by Artemiy on 15-Jun-18.

Estimate: 60 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Fix migration failure on prod

Launching dcp exec stb-python python manage.py migrate
provides this traceback:

  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 359, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 305, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 356, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 202, in handle
    targets, plan, fake=fake, fake_initial=fake_initial
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/executor.py", line 97, in migrate
    state = self._migrate_all_forwards(plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/executor.py", line 132, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/executor.py", line 237, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/migration.py", line 129, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/operations/fields.py", line 84, in database_forwards
    field,
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/postgresql/schema.py", line 21, in add_field
    super(DatabaseSchemaEditor, self).add_field(model, field)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 409, in add_field
    self.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 112, in execute
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: column "vendor_code" of relation "ecommerce_position" already exists

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.