Closed astronik00 closed 1 year ago
@astronik00 Думаю, что в 9 методе можно убрать второй параметр, чтобы репозиторий сам получил внутри себя текущее время и выставил его. И думаю, что это делать методом публичным не стоит, так как он должен вызываться только внутри методов изменения, этого репозитория
@astronik00 Может стоит объеденить все методы обновления в один, принимающий объект Task? чтобы изменив один объект полностью, одним запросом полностью его поменять
@astronik00 Может стоит объеденить все методы обновления в один, принимающий объект Task? чтобы изменив один объект полностью, одним запросом полностью его поменять
Я подумала, что может возникнуть когда-нибудь такая ситуация, что понадобится один из отдельных методов. Вряд ли хотя она возникнет, но я добавлю метод, где приходит одна Task 👌
@astronik00 запрос на изменение временных атрибутов (например, dtstart) нормально работает с sqlite базой данных? Он сам конвертирует в нужный формат?
@astronik00 запрос на изменение временных атрибутов (например, dtstart) нормально работает с sqlite базой данных? Он сам конвертирует в нужный формат?
Я не успела еще сделать это. Постараюсь как можно быстрее проверить
@astronik00 К чему вопрос - мы делаем валидацию либо строки str, либо datetime. Напиши, пожалуйста, как проверишь.
@aleksandra-shchegoleva
SQLite работает с форматом времени. Здесь представлены результаты перевода локального времени в UTC-0:
Также можно спокойно перевести из UTC-0 обратно в local time для корректного отображения на клиенте:
@Lailes
Проверь пожалуйста, как работает CalDAV с datetime форматом.
@astronik00 CalDAV работает с датой как строкой:
Это пример сохраненной переменной типа datetime напрямую. Работа идет полностью в соотвествии с питоном
Другие, именно CalDAV данные он хранит по особому, но тоже можно сказать что не сохраняя часовой пояс
Иными словами, все что касается часового пояса ложится на плечи того, кто сохраняет в таске объект datetime
@Lailes Если там Z на конце (как я вижу на скриншоте), то все нормально. Это как раз часоовой пояс UTC-0, который нам нужен.
Developing Task
Требования: программист
Краткое описание
Создать классы репозитория для локальной базы данных SQLite, в которых бы находились SQL-запросы, с использованием ORM SQLAlchemy
Функциональные требования или документация
Диаграмма базы данных
[Представление]() древовидных структур в реляционных таблицах
Конструктор данного класса:
Данный класс работает с классом задачи Task:
Список методов:
task: Task
- объект класса TaskNone
В этом методе необходимо предусмотреть разную логику для задачи, которая создается на клиенте (у нее будут пустые number и, как следствие, path), а также для того случая, когда мы посылаем полностью созданную задачу (например, загрузили ее по CalDAV и вычислять нам ничего не требуется).
[x] Добавление списка задач
list[Task]: list
- список объектов класса TaskNone
[x] Удаление задачи по Id
task_id: int
- удаление задачи c переданным IdNone
В этом методе необходимо предусмотреть особенности удаления задач при работе с древовидными структурами
[x] Поиск задачи по Id
task_id: int
- Id искомой задачиTask
- задача с заданным Id[x] Поиск задачи по шаблону (поиск осуществляется по всем текстовым полям задачи)
pattern: str
- искомая подстрокаlist[Task]
- список задач, который удовлетворяет искомой подстроке[x] Изменение задачи
task: Task
- измененная задачаОбобщенное решение
Выходной результат
Класс репозитория задач