Skip to content

burn1ngbear/ehp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Структура проекта Проект можно разделить на три смысловые части:

  • База данных
  • Фронтенд
  • Бекент

База данных

Как требовалось в задании, я не использовал ORM и делал запросы к БД через sql и connection.cursor() (web.view, api.view). Описание таблиц сделано в файле api.models. Я не до конца понял, как реализуются категории, поэтому создал для них таблицу и ссылаюсь через внешний ключ в таблице api_employee для редактирования списка категорий можно использовать админ панель Детальное описание в файле api.models

Фронтенд

Страницы можно разделить на две категории:

  • Для работы с Сотрудниками
  • Для работы с Должностями

При открытии сайта происходит автоматический редирект на страницу с таблицей сотрудников. Во вьюхе делаю запрос на получение сотрудников, после чего передаю список в HTML шаблон, там с помощью цикла вывожу список сотрудников, добавляя каждой строке кнопки для редактирвания и удаления записи.

На данной странице можно перейти на форму добавления кликнув на плюсик. Форма создаётся с помощью встоенного фунционала джанго. Для редактирования существующего объекта необходимо в конструктор формы передать класс. Для удаления кликаем на корзину и посылвается запрос на сервер.

Итог:

для просмотра, создания, удаления и редактирования данных сотрудника и должности можно было использовать два HTML шаблона:

  • Шаблон принимающий класс формы готовый к применению для создания и удаления этих двух сущностей
  • Шаблон для вывода таблицы, который принимает список столбцов, который можно создать циклом, и вывод строк тоже циклом.

Я решил не мудрить и создал по три шаблона. Хотя данное решение позволило более удобно контролировать вывод данных исключая ситуаций например при оборачивании таблицы в div нужно обернуть так же в бругом шабоне.

JavaScript JS занимается отправкой и обработкой запроса на удаление. Появляется уведомление и происходит удаление объекта из таблице при хорошем исходе. Так же JS занимается навигацией на сайте перенаправлая пользователя при назании на кнопку редактирования. Навигация так же происходит с помощью ссылок.

Бекенд

Я создал два приложения для обработки API и запросов на получение страниц(WEB).

В папке API хранятся:

  • Модели базы данны,
  • Роутинг запросов к API,
  • Настройки админ панели,
  • Представления для обаботки запросок к API.

В папке Web хранятся:

  • Формы создания и редактирования,
  • Представления для обработки запросов на получение страниц,
  • В Urls.py роутинг.

ничего необычного

Общий итог

Есть два места в который отклонился он тз:

  • Категория наверное должна была хранится сугубо в выпадающем списке, а я сделал как таблицу
  • Возраст сотрудника вычисляет по дате рождения, то есть не записывается цифрой, что по моему более правильно

Более подробными коментариями я сейчас буду покрывать код, хотя по мне он достаточно ясен и прост

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published