/atom-hw

TEHNOATOM HOMEWORK πŸ”₯πŸ”₯πŸ”₯

Primary LanguagePython

Build Status Coverage Status

Π”ΠΎΠΌΠ°ΡˆΠ½ΠΈΠΈ задания 3-5 Π»Π΅ΠΆΠ°Ρ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ hw34

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–3 (HW1)

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс Task (Π·Π°Π΄Π°Ρ‡Π°), содСрТащий:

  • ΠΏΠΎΠ»Π΅ title (Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ) Ρ‚ΠΈΠΏΠ° str (строка)
  • ΠΏΠΎΠ»Π΅ state (Бтатус выполнСния) Ρ‚ΠΈΠΏΠ° str (строка):
    • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - in_progress (выполняСтся) ΠΈ ready (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°)
  • ΠΏΠΎΠ»Π΅ estimate (Π‘Ρ€ΠΎΠΊ выполнСния) Ρ‚ΠΈΠΏΠ° datetime.date (Π΄Π°Ρ‚Π°)
  • конструктор, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²Ρ…ΠΎΠ΄ поля title ΠΈ estimate, ΠΏΠΎΠ»Π΅ state ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ in_progress
  • вычисляСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ remaining (ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π΄ΠΎ окончания сроков) Ρ‚ΠΈΠΏΠ° datetime.timedelta (Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ)
    • Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° - estimate минус тСкущая Π΄Π°Ρ‚Π°, Ссли state Ρ€Π°Π²Π½ΠΎ in_progress, ΠΈΠ½Π°Ρ‡Π΅ ноль
  • вычисляСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ is_failed (Π—Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΎΠ²Π°Π»Π΅Π½Π°) Ρ‚ΠΈΠΏΠ° bool (Π±ΡƒΠ»Π΅Π²Ρ‹ΠΉ Ρ‚ΠΈΠΏ)
    • Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° - Ссли state Ρ€Π°Π²Π½ΠΎ in_progress ΠΈ estimate мСньшС тСкущая Π΄Π°Ρ‚Π°
  • ΠΌΠ΅Ρ‚ΠΎΠ΄ ready, производящий смСну state Π½Π° ready

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс Roadmap (дороТная ΠΊΠ°Ρ€Ρ‚Π°), содСрТащий:

  • ΠΏΠΎΠ»Π΅ tasks (Π·Π°Π΄Π°Ρ‡ΠΈ) Ρ‚ΠΈΠΏΠ° list (список), Π³Π΄Π΅:
    • ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт списка - экзСмпляр класса Task
  • конструктор, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΠΎΠ»Π΅ tasks, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - пустой список
  • вычисляСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ today Ρ‚ΠΈΠΏΠ° list (список)
    • Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° - всС элСмСнты tasks, Π³Π΄Π΅ estimate Ρ€Π°Π²Π½ΠΎ тСкущая Π΄Π°Ρ‚Π°
  • ΠΌΠ΅Ρ‚ΠΎΠ΄ filter, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²Ρ…ΠΎΠ΄ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ state Ρ‚ΠΈΠΏΠ° str (строка) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ всС элСмСнты tasks, Π³Π΄Π΅ task.state Ρ€Π°Π²Π½ΠΎ state

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–4 (HW2)

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ wsgi-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выводящСС список ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΏΡ€ΠΈ этом ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ просрочСнныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Π΄ΠΎ окончания срока ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Ρ… Π΄Π½Π΅ΠΉ. Cписок Π·Π°Π΄Π°Ρ‡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° dataset.yml Π² сСкции dataset (схСма описана Π² сСкции schema, порядок ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… - title, state, estimate, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ чтСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² скриптС parse.py).

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–5 (HW3)

Π’ домашнСм Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–3 ΠΌΡ‹ описали класс Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Task (Π—Π°Π΄Π°Ρ‡Π°). НСобходимо Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ прСдставлСниС ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ создания ΠΈ рСдактирования для этой сущности. Π’ случаС успСха ΠΈΠ»ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ заполнСния Ρ„ΠΎΡ€ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сообщСния.

Π’ домашнСм Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–4 ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ понятиС "критичная Π·Π°Π΄Π°Ρ‡Π°" (ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ просрочСнныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Π΄ΠΎ окончания срока ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Ρ… Π΄Π½Π΅ΠΉ). Π’ случаС успСха заполнСния Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ вывСсти ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ всС поля сущности, Ссли Π·Π°Π΄Π°Ρ‡Π° являСтся ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠΉ - Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнных Π·Π°Π΄Π°Ρ‡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django ΠΈ Π΅Π³ΠΎ возмоТности (ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹, прСдставлСния, Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Ρ„ΠΎΡ€ΠΌ, стандартныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹).

Π€ΠΎΡ€ΠΌΠ° создания

Π€ΠΎΡ€ΠΌΠ° создания Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ элСмСнты:

  • ΠΏΠΎΠ»Π΅ title (Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ) Ρ‚ΠΈΠΏΠ° str (строка)
  • ΠΏΠΎΠ»Π΅ estimate (Π‘Ρ€ΠΎΠΊ выполнСния) Ρ‚ΠΈΠΏΠ° datetime.date (Π΄Π°Ρ‚Π°)
  • ΠΊΠ½ΠΎΠΏΠΊΠ° "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ", Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° сСрвСр

Поля Ρ„ΠΎΡ€ΠΌΡ‹ создания ΠΈΠΌΠ΅ΡŽΡ‚ ограничСния:

  • Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля estimate (Π‘Ρ€ΠΎΠΊ выполнСния) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½Π΅ΠΌΡƒ дню (date.today)
  • значСния всСх ΠΏΠΎΠ»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ

Π€ΠΎΡ€ΠΌΠ° рСдактирования

Π€ΠΎΡ€ΠΌΠ° рСдактирования Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ элСмСнты:

  • ΠΏΠΎΠ»Π΅ title (Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ) Ρ‚ΠΈΠΏΠ° str (строка)
  • ΠΏΠΎΠ»Π΅ state (Бтатус выполнСния) Ρ‚ΠΈΠΏΠ° str (строка):
    • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - in_progress (выполняСтся) ΠΈ ready (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°)
  • ΠΏΠΎΠ»Π΅ estimate (Π‘Ρ€ΠΎΠΊ выполнСния) Ρ‚ΠΈΠΏΠ° datetime.date (Π΄Π°Ρ‚Π°)
  • ΠΊΠ½ΠΎΠΏΠΊΠ° "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ", Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° сСрвСр

Поля Ρ„ΠΎΡ€ΠΌΡ‹ создания ΠΈΠΌΠ΅ΡŽΡ‚ ограничСния:

  • Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля state (Бтатус выполнСния) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

  1. ΠœΠ°ΡˆΡ€ΡƒΡ‚Ρ‹, URL dispatcher
  2. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ, Views
  3. Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ прСдставлСний, View decorators
  4. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдставлСний, Shortcut functions
  5. Π€ΠΎΡ€ΠΌΡ‹, Forms
  6. Поля Ρ„ΠΎΡ€ΠΌ, Form fields
  7. Валидация Ρ„ΠΎΡ€ΠΌ, Form validations

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–6(HW4)

Π’ домашнСм Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–3 ΠΌΡ‹ описали классы Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ сущности Task (Π—Π°Π΄Π°Ρ‡Π°) ΠΈ Roadmap (ДороТная ΠΊΠ°Ρ€Ρ‚Π°). НСобходимо ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Django-ΠΌΠΎΠ΄Π΅Π»ΠΈ Task ΠΈ Roadmap, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Roadmap относится ΠΊ Task ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ. НСобходимо Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ структуру ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² ΠΈ прСдставлСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с модСлями.

Π’ домашнСм Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–5 ΠΌΡ‹ описали Ρ„ΠΎΡ€ΠΌΡ‹ для сущности Task (Π—Π°Π΄Π°Ρ‡Π°), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ… ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Django Model Forms) ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ для сущности Roadmap (ДороТная ΠΊΠ°Ρ€Ρ‚Π°).

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ

  1. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Бписок Π΄ΠΎΡ€ΠΎΠΆΠ½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚, содСрТащСС:
    • Бписок записСй Roadmap (ДороТная ΠΊΠ°Ρ€Ρ‚Π°), Π³Π΄Π΅ каТдая запись сопровоТдаСтся:
      • ссылкой Π½Π° просмотр Π·Π°Π΄Π°Ρ‡ Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹
      • ссылкой Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ всСх Π΅Π΅ Π·Π°Π΄Π°Ρ‡
    • Бсылку Π½Π° созданиС Π½ΠΎΠ²ΠΎΠΉ записи Roadmap (ДороТная ΠΊΠ°Ρ€Ρ‚Π°)
  2. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Бписок Π·Π°Π΄Π°Ρ‡, содСрТащСС:
    • Бписок записСй Task (Π—Π°Π΄Π°Ρ‡Π°), отсортированных ΠΏΠΎ статусу ΠΈ срокам выполнСния, Π³Π΄Π΅ каТдая запись сопровоТдаСтся:
      • полями Π·Π°Π΄Π°Ρ‡ΠΈ title (Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ), state (Бтатус выполнСния) ΠΈ estimate (Π‘Ρ€ΠΎΠΊ выполнСния)
      • ссылкой Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ
      • ссылкой Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ
  3. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎ ΠΊΠ°Ρ€Ρ‚Ρ‹
  4. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ всСх Π΅Π΅ Π·Π°Π΄Π°Ρ‡
  5. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ
  6. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ИзмСнСниС Π·Π°Π΄Π°Ρ‡ΠΈ
  7. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ

ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹

КаТдая ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° собствСнным ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ URL, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого трСбования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности задания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ².

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

  1. ΠœΠ°ΡˆΡ€ΡƒΡ‚Ρ‹, URL dispatcher
  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π‘Π£Π‘Π”, Install database
  3. МодСли, Models
  4. Π€ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠ΄Π΅Π»ΠΉ, Model Forms

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–7 (HW5)

Π’ домашнСм Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡ†ΠΈΠΈ β„–6 ΠΌΡ‹ описали классы ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ сущности Task (Π—Π°Π΄Π°Ρ‡Π°) ΠΈ Roadmap (ДороТная ΠΊΠ°Ρ€Ρ‚Π°) ΠΈ прСдставлСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими сущностями. НСобходимо ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ класс ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π½ΠΎΠ²ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Scores (ΠžΡ‡ΠΊΠΈ), содСрТащий:

  • ссылочноС ΠΏΠΎΠ»Π΅ task (Π—Π°Π΄Π°Ρ‡Π°) Π½Π° модСль Task (Π—Π°Π΄Π°Ρ‡Π°)
  • ΠΏΠΎΠ»Π΅ date (ВрСмя зачислСния) Ρ‚ΠΈΠΏΠ° datetime.datetime (Π΄Π°Ρ‚Π° ΠΈ врСмя)
  • ΠΏΠΎΠ»Π΅ points (ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ зачислСнных ΠΎΡ‡ΠΊΠΎΠ²) Ρ‚ΠΈΠΏΠ° decimal.Decimal (число)

ΠŸΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π² статус ready), ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство ΠΎΡ‡ΠΊΠΎΠ². Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ - (today - create date / estimate - create date) + (estimate - create date / max estimate), Π³Π΄Π΅:

  • estimate - оТидаСмая Π΄Π°Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ
  • today - фактичСская Π΄Π°Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ
  • create date - Π΄Π°Ρ‚Π° создания Π·Π°Π΄Π°Ρ‡ΠΈ
  • max estimate - максимально большой ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ estimate - create date зарСгистрированный Π² систСмС (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· сохранСнных записСй ΠΌΠΎΠ΄Π΅Π»ΠΈ Task)

Бтатистика

НСобходимо Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ прСдставлСниС, выводящСС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ систСмы статистику ΠΏΠΎ Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π°ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π·Π°Π΄Π°Ρ‡.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

  • Бтатистика "Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅/Π Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅", Π³Π΄Π΅ значСния сгруппированы ΠΏΠΎ нСдСлям ΠΈ Π΅ΡΡ‚ΡŒ поля:
    • ΠΏΠΎΠ»Π΅ НомСр Π½Π΅Π΄Π΅Π»ΠΈ Π² Π³ΠΎΠ΄Ρƒ Ρ‚ΠΈΠΏΠ° int (Ρ†Π΅Π»ΠΎΠ΅ число)
    • ΠΏΠΎΠ»Π΅ Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» Π΄Π°Ρ‚ Ρ‚ΠΈΠΏΠ° str (строка), Π³Π΄Π΅
      • Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ формируСтся ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ "Y-m-d / Y-m-d"
      • Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° - ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ дСнь Π½Π΅Π΄Π΅Π»ΠΈ
      • ΠΊΠΎΠ½Π΅Ρ† ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° - послСдний дСнь Π½Π΅Π΄Π΅Π»ΠΈ
    • ΠΏΠΎΠ»Π΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΎ Ρ‚ΠΈΠΏΠ° int (Ρ†Π΅Π»ΠΎΠ΅ число), содСрТащСС количСство всСх Π·Π°Π΄Π°Ρ‡, созданных Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»
    • ΠΏΠΎΠ»Π΅ РСшСно Ρ‚ΠΈΠΏΠ° int (Ρ†Π΅Π»ΠΎΠ΅ число), содСрТащСС количСство всСх Π·Π°Π΄Π°Ρ‡, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² статус ready
  • Бтатистика "ΠžΡ‡ΠΊΠΈ", Π³Π΄Π΅ значСния сгруппированы ΠΏΠΎ мСсяцам ΠΈ Π΅ΡΡ‚ΡŒ поля:
    • ΠΏΠΎΠ»Π΅ ΠœΠ΅ΡΡΡ† Ρ‚ΠΈΠΏΠ° str (строка), Π³Π΄Π΅
      • Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ формируСтся ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ "Y-m"
    • ΠΏΠΎΠ»Π΅ ЗачислСно Ρ‚ΠΈΠΏΠ° decimal.Decimal (число), содСрТащСС сумму ΠΎΡ‡ΠΊΠΎΠ², зачислСнных Π² ΡƒΠΊΠ°Π·Π°Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнных Π·Π°Π΄Π°Ρ‡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django ΠΈ Π΅Π³ΠΎ возмоТности (ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π°Π³Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹, прСдставлСния, стандартныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹).

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

  1. Запросы ΠΊ Π‘Π£Π‘Π”, Queries
  2. ΠΠ³Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ запросы ΠΊ Π‘Π£Π‘Π”, Aggregation
  3. Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Database transactions

Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° *

Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… слоТно Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, для отобраТСния статистичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ цСлСсобразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π΅Π±-прилоТСния ΠΏΡ€ΠΈ этом Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ javascript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, D3. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ распространяСтся ΠΏΠΎΠ΄ BSD-Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ, Π΅Π³ΠΎ исходный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° GitHub, Ρ‚Π°ΠΌ ΠΆΠ΅ присуствуСт ΠΈ довольно полная докумСнтация. ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° страницС Майка Бостока, основного ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° D3.

D3.js

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

* Π Π°Π±ΠΎΡ‚Π° выполняСтся ΠΏΠΎ ТСланию