Closed dhilt closed 6 years ago
Таким образом нам позарез нужны Страницы на сайте, чтобы мы могли отделить Translators Info от самих Translators. Сейчас описание Переводчиков хранится в поле description, надо чтобы оно хранилось в новом типе эластик-документов, Pages. Я создал отдельное issue – https://github.com/dhilt/dharmadict/issues/40.
@khajjit Что ты об этом думаешь?
@dhilt Если зайти на dharmadict.ru и найти страницу описания Хопкинса, то можно увидеть что у него уже есть в точности такое же описание, как в приложенном файле.
А что делать с переводом от пары А. Кугявичус - А.А. Терентьев? Допустим, мы можем разбить на Кугявичуса и Терентьева, но что делать с их переводами? Просто сделать копии и первому, и второму? Или же мы создаем Страницы на сайте, у Кугявичуса и Терентьева появляется своя уникальная страница с информацией о переводчике, но при этом их переводы сосуществует вместе (и может в дальнейшем еще будут переводы и по отдельности)?
Но меня больше всего интересует как мы будем менять базу данных. Нам ведь нужно будет взять бд с сервера и с ней уже проводить все манипуляции (ну и при этом все должно быть так, чтобы не было возможности вводить/менять данные со стороны пользователей, пока эти манипуляции идут). У меня на уме только два варианта:
Ну и еще давным давно была речь о неком новом db-migrate для базы данных - https://github.com/dhilt/dharmadict/issues/37.
А что насчет ужасного внешнего вида страниц пользователей? Нужно уменьшить ширину серого прямоугольника, либо убрать его? Либо же надо как-то переосмыслить в целом внешний вид страницы и проявить эдакую дизайнерскую смекалку?)
Я попробую ответить на все моменты разом.
Переводчиков на уровне Translator-документов не разделяем. Описания не трогаем. Эта часть БД остается неизменной.
Появляется новый тип документов, Page. С тремя основными полями (url, title, text). Создаем ряд Страниц: это О проекте и страницы Переводчиков, повторяющие существующие описания.
Описание для Хопкинса я задал через интерфейс сайта.
Пока по-прежнему можно не беспокоиться о данных, с их стороны не было сделано ни одной правки.
В prod/db/scripts/ надо положить новый скрипт, который создаст Страницы.
Текст Страницы может (и должен) включать в себя html, нужно привести это в удобоваримый вид. У меня нет представлений на этот счет, надо просто пробовать.
Потребуется новый route для просмотра списка всех страниц (dharmadict.ru/pages), route для отдельно взятой страницы (dharmadict.ru/pages/:pageUrl), где :pageUrl, это значение поля url) и route для редактирования 1 страницы, доступный только админу dharmadict.ru/pages/:pageUrl/edit.
@dhilt Почти всё сделал (результаты в бранче pages
). Осталось только разобраться как сохранять html-страницы, а скорее всего разобраться в том, как бы из строки, содержащей верстку, воспроизводить эту верстку. Ну и добавить описания всех переводчиков для заполнения в базу данных.
И касательно страницы для переводчика - мы ведь вряд ли сможем провести локализацию для строки "Язык переводов: ".
@dhilt И два вопроса есть.
@khajjit В этом ключе я предлагаю следующее решение. Мы оставляем прежний механизм по отображению страниц вида http://dharmadict.ru/translator/DON, которые локализуются, но вместо существующего описания даем ссылку на страницу из Pages (http://dharmadict.ru/pages/don), которая не локализуется. В разделе "О проекте" мы даем ссылки на нелокализуемые Pages, а в самих переводах даем ссылки первого типа (http://dharmadict.ru/translator/DON). Впоследствии мы сможем добавить произвольное кол-во страниц на любом языке (http://dharmadict.ru/pages/don_en и т.п.), добавляя ссылки в действующие описания Переводчиков.
Соответственно роут /translator/:id остается. и роут /translator/:id/edit тоже, т.к. там можно менять описание, пароль, имя...
@khajjit И на счет функционала:
Для текста там должна быть одна большая textarea, куда можно писать html. Этот html нужно выводить as is при выводе /pages/:pageUrl.
@dhilt Так, вроде все готово. На сервере все запросы для создания/редактирования/удаления страниц есть. На клиенте компоненты для реализации этих возможностей тоже есть, нужно только наверное для кнопки удаления страницы сделать всплывающее окошко для подтверждения действия.
Существующие описания переводчиков добавил в скрипт add_pages, и прикрепленного Кугявичуса тоже (под инициалами "AK", может надо другие инициалы, не знаю). И теперь можно в описание переводчика вносить html-элементы и это все отобразится как часть верстки.
И есть следующие вопросы/предложения:
@dhilt И еще один вопрос. Сейчас я сделал так, что при создании новой страницы можно вводить url самому. Быть может, надо было сделать только два поля - title и text, а на сервере создавать url из приходящего title?
@khajjit Спасибо!
Момент 1, да, /pages/about это то, что там должно быть.
Момент 2 не играет большой роли, но можно это UI поле (с описанием) показывать только суперадмину (можно даже API не защищать ролью, а только авторизацией).
Момент 3 предлагаю опустить, главное дать ссылки на страницы Переводчиков внутри /pages/about.
Момент 4, я думаю, что это хорошо, что url задается админом! Ты предлагаешь хорошую идею, но не будем пытаться облегчить себе жизнь, тем более, что для СЕО-дел (не знаю, насколько это актуально в данном проекте, но все же) всегда дается возможность ручного указания url. Да, можно было бы имплементировать default, генерирующий транслит из title, но совершенно точно должна быть возможность задания url вручную.
@khajjit Я хотел созвониться в скайпе, ты увидишь пропущенный... У меня возникла идея на тему одного нового проекта, в котором ты, как мне кажется, мог бы принять участие. Задача этого взаимодействия – облегчить жизнь команде, состоящей из меня и еще одного человека. Сроки там полтора месяца, и я готов платить какие-то деньги, зависящие от объема твоего участия. Скажи пожалуйста, рассматриваешь ли ты подобную историю? если да, нужно созвониться и попробовать проговорить основные моменты.
@dhilt Круто, я бы с большим удовольствием поучаствовал. Только не шибко уверен насчет количества пользы, которой смогу принести - но я бы постарался. Если что, теперь доступен в скайпе.
@dhilt Убрал компонент About, сделал ссылку на страницу /pages/about - https://github.com/dhilt/dharmadict/commit/472dd094d07de1332651e6b17cf02912ec5c66db. На этом вроде всё.
@khajjit я БУДУ это смотреть
Скажи, пожалуйста, какой твой email? Сегодня мы работали над черновиком требований к front end для нового проекта, приблизительная картина должна сложиться, прикрепляю к сообщению –
И посмотри автономно в режиме пассивного исследования вопросы по интеграции NodeJS сервера с RabitMQ, а также использование socket.io (тоже на стороне NodeJS).
@dhilt Мой email - yuvzhenko@inbox.ru
Пришел запрос на добавление данных о двух переводчиках
Альгирдас Кугявичус.docx
Краткая биография Джеффри Хопкинса.docx
Проблема номер один заключается в том, что Кугявичус в настоящее время существует в сдвоенной ипостаси (А. Кугявичус и А.А. Терентьев).
Проблема номер два – ужасный внешний вид страниц Переводчиков.