stroyprombeton's People
Forkers
artemijrodionovstroyprombeton's Issues
tests_selenium_admin.py:502-504: <body>Fix a...
The puzzle TABLEEDITOR-TEST-675949b7
from #TABLEEDITOR-TEST has to be resolved:
stroyprombeton/stroyprombeton/tests/tests_selenium_admin.py
Lines 502 to 504 in ffb21d7
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.
Добавить инфу о refarm-site в документацию
Сейчас в документации проекта нет упоминания о refarm-site. Нужно написать, какие приложения из refarm-site мы используем и как примонтировать их к проекту, чтобы тестировать изменения
Пофиксь pdd форматирование.
stroyprombeton/docker/Makefile
Line 31 in d089199
docker-compose.yml:59-60: Check why rabbitmq exposes it's...
The puzzle 142-b10915e2
from #142 has to be resolved:
stroyprombeton/docker/docker-compose.yml
Lines 59 to 60 in 89cc959
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, что исключает возможность немедленной проверки?
Настрой систему резервного копирования
Список того, что нужно сохранять:
- База данных
- Медиаданные
- Статика (?)
Желательно делать это через определенные интервалы (например, одновременно иметь в доступе дневной, недельный и месячный бекап базы данных)
Autobuild local env as on SE
В fidals/shopelectro#176 fidals/shopelectro#269 всё реализовали.
Повтори это на Бетоне или убедись, что это реализовано
Включить gzip сжатие
Сервис Google PageSpeed рекомендует нам включить сжатие для изображений и другой статики
Related to #107
STB поиск в table editor
Поиск в table editor не ищет по марке изделия. Нужно добавить.
Tags feature
It's already implemented on SE.
Some UI decision is needed here
Admin page create 404 bug
Из чата:
слушай, я тут новость хотел добавить на промбетон. нажал сохранить и продолжить - получил это http://www.stroyprombeton.ru/admin/stroyprombeton/newsforadmin/29899/change/
CI is broken
Resurrect stage
Оживи stage.stroyprombeton.ru
Он должен юзать свою собственную базу.
Деплоить его будем руками, отдельно от прода
STB Fix mobile markup on SearchPage
Сейчас по URL /search/
отдается страница, плохо адаптированная под мобильные устройства, в первую очередь это касается таблицы найденных продуктов.
Как вариант -- сделать мобильный лейаут подобным таковому на страницах категорий.
django-cachalot dropped support of django==1.10
http://django-cachalot.readthedocs.io/en/latest/changelog.html#id1
CI tests are failed because, recently django-cachalot dropped support of django version 1.10, so we should set django-cachalot version to 1.5
Оптимизировать изображения
Сервис 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:
stroyprombeton/stroyprombeton/tests/tests_selenium_admin.py
Lines 259 to 260 in 10640be
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.
Нужно протестить и проверить все корнер кейсы.
STB ошибка при открытии новости
http://www.stroyprombeton.ru/page/news/bloki-niu-dzhersi-dlia-iakhtennogo-mosta/ при открытии белый экран
.drone.yml:61-63: Explore why drone `lint` and...
The puzzle 142-2b52b0ff
from #142 has to be resolved:
Lines 61 to 63 in 89cc959
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 адаптивным.
Таблица должна растягиваться на всю ширину экрана
Автор: Саня
Напиши инструкцию по разворачиванию проекта на локали
Аналогично fidals/shopelectro#229
Очень нужно, т.к. после последних изменений в docker-compose конфиге, пришлось искать, что там вообще произошло и править свой локальный конфиг.
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 для стабилизации тестов.
Fix lint pipeline
tests_selenium.py:232-236: Setting a number of items...
The puzzle 137-a7a31c49
from #137 has to be resolved:
stroyprombeton/stroyprombeton/tests/tests_selenium.py
Lines 232 to 236 in 10640be
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.
Cart don't send mail
Business wrote about it to Hellxi
docker-compose.yml:42-43: Validate if `.env` is full Is...
The puzzle 150-9a03496d
from #150 has to be resolved:
stroyprombeton/docker/docker-compose.yml
Lines 42 to 43 in 36b7fd0
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
"Напомню, что я обеспокоен нашей микроразметкой
Действительно, на данный момент имеются ошибке в разметке:
- Используется микроформат hCard. Яндекс ставит обязательным условием наличие свойств fn и org, т.е. название организации. Поэтому нужно добавить:
<span class="fn org">СТК-Промбетон</span>
- Используется разметка Open Graph. Яндекс ставит обязательным условием наличие метатега og:image. Поэтому нужно добавить:
<meta property="og:image" content="урл_картинки_на_странице">
Эта картинка будет показываться в превью, которое формируется при публикации ссылки на страницу в социальных сетях и других интернет-сервисах. Например в карточках товара нужно размечать этим тегом фото товара. На остальных страницах можно разметить, например, логотип компании.
- Фото в карточках размечены свойством 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:
stroyprombeton/docker/Makefile
Lines 67 to 68 in 89cc959
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:
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
Не сделано:
- Используется микроформат hCard. Яндекс ставит обязательным условием наличие свойств fn и org,
т.е. название организации. Поэтому нужно добавить:
[code]
СТК-Промбетон
[/code]
Вот проверка валидатором: https://webmaster.yandex.ru/tools/microtest/
tests_selenium.py:446-447: Repair Search test...
The puzzle 160-a0d43631
from #160 has to be resolved:
stroyprombeton/stroyprombeton/tests/tests_selenium.py
Lines 446 to 447 in 3001a14
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.
Прикрути PDD tasks validation
По аналогии с fidals/shopelectro#184
Resurrect npm as on SE
Repeat code from se#344, se#345, se#361
base.py:231-233: List mail recipients in config Remove...
The puzzle 160-956c9262
from #160 has to be resolved:
stroyprombeton/stroyprombeton/settings/base.py
Lines 231 to 233 in 3001a14
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
В Админке добавляем автокомплит при создании категорий http://prntscr.com/eepm4q
Речь идёт о Category EditPage. Вот пример:
http://www.stroyprombeton.ru/admin/stroyprombeton/categorypage/15312/change/
Если нажмёшь на поле "Родитель", узнаешь наш скрин. Сейчас там неудобненько, т.к. ~200 категорий нужно скроллить, чтобы найти нужную для выбора
Broken drone docker-push pipeline
Same as fidals/shopelectro#321
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.
Напиши конфиг для Drone CI
По большей части его содержимое можно скопировать из shopelectro/pull/209
docker-compose.yml:83-84: Resurrect coala. Already done...
The puzzle 142-a64f413d
from #142 has to be resolved:
stroyprombeton/docker/docker-compose.yml
Lines 83 to 84 in 89cc959
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
Перенести CSS-стили в блок <body>
Сервис Google PageSpeed рекомендует нам удалить код JavaScript и CSS, блокирующий отображение верхней части страницы
Related to #107
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.