This commit is contained in:
2024-05-14 16:58:27 +03:00
parent 2762ac794a
commit 7988103495
13 changed files with 403 additions and 356 deletions

View File

@@ -1,76 +1,76 @@
## Модель имущества
1. **GoodsType:**
- `name`: Название типа имущества.
- `name`(CharField): Название типа имущества.
2. **ConsumableType:**
- `name`: Название типа расходуемых ТМЦ.
- `name`(CharField): Название типа расходуемых ТМЦ.
3. **Goods:**
- `goods_type`: (ForeignKey) Связь с типом имущества (`GoodsType`).
- `goods_name`: (CharField) Название имущества.
- `inventory_number`: (CharField) Инвентарный номер имущества.
- `description`: (TextField) Описание имущества.
- `goods_photo`: (ManyToManyField) Фотографии имущества (связь с моделью `ImageGoods`).
- `condition_description`: (TextField) Описание состояния имущества.
- `damage_date_time`: (DateTimeField) Дата и время обнаружения порчи.
- `related_object`: (ForeignKey) Связь с объектом (`Object`), к которому относится имущество.
- `responsible_person`: (CharField) Ответственное лицо за имущество.
- `status`: (CharField) Статус состояния имущества (`good` - хорошее, `damaged` - поврежденное).
- **`goods_type`** (ForeignKey): Связь с типом имущества (`GoodsType`).
- **`goods_name`** (CharField): Название имущества.
- **`inventory_number`** (CharField): Инвентарный номер имущества.
- **`description`** (TextField): Описание имущества.
- **`goods_photo`** (ManyToManyField): Фотографии имущества (связь с моделью `ImageGoods`).
- **`condition_description`** (TextField): Описание состояния имущества.
- **`damage_date_time`** (DateTimeField): Дата и время обнаружения порчи.
- **`related_object`** (ForeignKey): Связь с объектом (`Object`), к которому относится имущество.
- **`responsible_person`** (CharField): Ответственное лицо за имущество.
- **`status`** (CharField): Статус состояния имущества (`good` - хорошее, `damaged` - поврежденное).
4. **Consumable:**
- `consumable_type`: (ForeignKey) Связь с типом расходуемых ТМЦ (`ConsumableType`).
- `name`: (CharField) Название расходуемого товара.
- `description`: (TextField) Описание товара.
- `consumable_photo`: (ManyToManyField) Фотографии товара (связь с моделью `ImageGoods`).
- `quantity`: (PositiveIntegerField) Количество товара.
- `quantity_unit`: (CharField) Единица измерения количества (выбор из предопределенных вариантов, например, шт., кг, л и т. д.).
- `related_object`: (ForeignKey) Связь с объектом (`Object`), к которому относится товар.
- `responsible_person`: (CharField) Ответственное лицо за товар.
- **`consumable_type`** (ForeignKey): Связь с типом расходуемых ТМЦ (`ConsumableType`).
- **`name`** (CharField): Название расходуемого товара.
- **`description`** (TextField): Описание товара.
- **`consumable_photo`** (ManyToManyField): Фотографии товара (связь с моделью `ImageGoods`).
- **`quantity`** (PositiveIntegerField): Количество товара.
- **`quantity_unit`** (CharField): Единица измерения количества (выбор из предопределенных вариантов, например, шт., кг, л и т. д.).
- **`related_object`** (ForeignKey): Связь с объектом (`Object`), к которому относится товар.
- **`responsible_person`** (CharField): Ответственное лицо за товар.
## Сериализатор
1. **AuthorSerializer:**
- `username`: Имя пользователя.
- `bio`: Биография пользователя.
- `image`: Изображение пользователя.
- `following`: Подписка пользователя (булево значение).
2. **GoodsTypeSerializer:**
- `id`: Идентификатор типа имущества.
- `goodsTypeName`: Название типа имущества.
- `author`: Автор типа имущества (сериализатор `AuthorSerializer`).
- `createdAt`: Дата и время создания типа имущества.
- `updatedAt`: Дата и время последнего обновления типа имущества.
3. **ConsumableTypeSerializer:**
- `id`: Идентификатор типа расходуемых ТМЦ.
- `consumableTypeName`: Название типа расходуемых ТМЦ.
- `author`: Автор типа расходуемых ТМЦ (сериализатор `AuthorSerializer`).
- `createdAt`: Дата и время создания типа расходуемых ТМЦ.
- `updatedAt`: Дата и время последнего обновления типа расходуемых ТМЦ.
4. **GoodsSerializer:**
- `id`: Идентификатор имущества.
- `goods_type`: Тип имущества.
- `goodsName`: Название имущества.
- `goodsInventoryNumber`: Инвентарный номер имущества.
- `goodsDescription`: Описание имущества.
- `goodsPhoto`: Фотография имущества.
- `goodsConditionDescription`: Описание состояния имущества.
- `goodsDamageDateTime`: Дата и время обнаружения повреждения имущества.
- `goodsRelatedObject`: Объект, к которому относится имущество.
- `goodsResponsiblePerson`: Ответственное лицо за имущество.
- `goodsStatus`: Статус имущества.
- `author`: Автор имущества (сериализатор `AuthorSerializer`).
- `createdAt`: Дата и время создания имущества.
- `updatedAt`: Дата и время последнего обновления имущества.
5. **ConsumableSerializer:**
- `id`: Идентификатор расходуемого товара.
- `consumable_type`: Тип расходуемого товара.
- `consumableName`: Название расходуемого товара.
- `consumableDescription`: Описание расходуемого товара.
- `consumablePhoto`: Фотография расходуемого товара.
- `consumableQuantity`: Количество расходуемого товара.
- `consumableQuantityUnit`: Единица измерения количества товара.
- `consumableRelatedObject`: Объект, к которому относится товар.
- `consumableResponsiblePerson`: Ответственное лицо за товар.
- `author`: Автор расходуемого товара (сериализатор `AuthorSerializer`).
- `createdAt`: Дата и время создания расходуемого товара.
- `updatedAt`: Дата и время последнего обновления расходуемого товара.
1. **GoodsTypeSerializer:**
- `id` (IntegerField): Идентификатор типа имущества.
- `goodsTypeName` (CharField): Название типа имущества.
- `author` (SerializerMethodField): Автор типа имущества (сериализатор `AuthorSerializer`).
- `createdAt` (DateTimeField): Дата и время создания типа имущества.
- `updatedAt` (DateTimeField): Дата и время последнего обновления типа имущества.
2. **ConsumableTypeSerializer:**
- `id` (IntegerField): Идентификатор типа расходуемых ТМЦ.
- `consumableTypeName` (CharField): Название типа расходуемых ТМЦ.
- `author` (SerializerMethodField): Автор типа расходуемых ТМЦ (сериализатор `AuthorSerializer`).
- `createdAt` (DateTimeField): Дата и время создания типа расходуемых ТМЦ.
- `updatedAt` (DateTimeField): Дата и время последнего обновления типа расходуемых ТМЦ.
3. **GoodsSerializer:**
- `id` (IntegerField): Идентификатор имущества.
- `goods_type` (GoodsTypeSerializer): Тип имущества.
- `goodsName` (CharField): Название имущества.
- `goodsInventoryNumber` (CharField): Инвентарный номер имущества.
- `goodsDescription` (TextField): Описание имущества.
- `goodsPhoto` (ManyToManyField): Фотография имущества.
- `goodsConditionDescription` (TextField): Описание состояния имущества.
- `goodsDamageDateTime` (DateTimeField): Дата и время обнаружения повреждения имущества.
- `goodsRelatedObject` (ForeignKey): Объект, к которому относится имущество.
- `goodsResponsiblePerson` (CharField): Ответственное лицо за имущество.
- `goodsStatus` (CharField): Статус имущества.
- `author` (SerializerMethodField): Автор имущества (сериализатор `AuthorSerializer`).
- `createdAt` (DateTimeField): Дата и время создания имущества.
- `updatedAt` (DateTimeField): Дата и время последнего обновления имущества.
4. **ConsumableSerializer:**
- `id` (IntegerField): Идентификатор расходуемого товара.
- `consumable_type` (ConsumableTypeSerializer): Тип расходуемого товара.
- `consumableName` (CharField): Название расходуемого товара.
- `consumableDescription` (TextField): Описание расходуемого товара.
- `consumablePhoto` (ManyToManyField): Фотография расходуемого товара.
- `consumableQuantity` (PositiveIntegerField): Количество расходуемого товара.
- `consumableQuantityUnit` (CharField): Единица измерения количества товара.
- `consumableRelatedObject` (ForeignKey): Объект, к которому относится товар.
- `consumableResponsiblePerson` (CharField): Ответственное лицо за товар.
- `author` (SerializerMethodField): Автор расходуемого товара (сериализатор `AuthorSerializer`).
- `createdAt` (DateTimeField): Дата и время создания расходуемого товара.
- `updatedAt` (DateTimeField): Дата и время последнего обновления расходуемого товара.
## Маршрутизатор
1. `router.register('goods', GoodsView, basename='goods')`: Регистрация представления `GoodsView` в маршрутизаторе под именем `'goods'`, с указанием базового имени `'goods'`. Это создаст URL-адреса для операций CRUD (создание, чтение, обновление, удаление) имущества.
@@ -86,30 +86,33 @@
1. **GoodsView:**
- **Описание:** Это представление, использующее `ModelViewSet`, обрабатывает операции CRUD для имущества.
- **Методы:**
- **list:** Возвращает список имущества.
- **create:** Создает новое имущество.
- **retrieve:** Возвращает конкретное имущество по его идентификатору.
- **update:** Обновляет существующее имущество.
- **destroy:** Удаляет имущество.
- **`list`:** Возвращает список имущества.
- **`create`:** Создает новое имущество.
- **`retrieve`:** Возвращает конкретное имущество по его идентификатору.
- **`update`:** Обновляет существующее имущество.
- **`destroy`:** Удаляет имущество.
- **Права доступа:** Только аутентифицированные пользователи имеют доступ к этим методам.
2. **GoodsTypeView:**
- **Описание:** Это представление, также использующее `ModelViewSet`, для операций CRUD с типами имущества.
- **Методы:**
- **list:** Возвращает список типов имущества.
- **create:** Создает новый тип имущества.
- **destroy:** Удаляет тип имущества.
- **`list`:** Возвращает список типов имущества.
- **`create`:** Создает новый тип имущества.
- `**destroy`:** Удаляет тип имущества.
- **Права доступа:** Только аутентифицированные пользователи могут выполнять действия с типами имущества.
3. **ConsumableTypeView:**
- **Описание:** Представление для операций CRUD с типами расходуемых товаров.
- **Методы:**
- **list:** Возвращает список типов расходуемых товаров.
- **create:** Создает новый тип расходуемого товара.
- **destroy:** Удаляет тип расходуемого товара.
- **`list`:** Возвращает список типов расходуемых товаров.
- `**create`:** Создает новый тип расходуемого товара.
- **`destroy`:** Удаляет тип расходуемого товара.
- **Права доступа:** Только аутентифицированные пользователи имеют доступ к этим методам.
4. **ConsumableView:**
- **Описание:** Представление для операций CRUD с расходуемыми товарами.
- **Методы:**
- **list:** Возвращает список расходуемых товаров.
- **create:** Создает новый расходуемый товар.
- **destroy:** Удаляет расходуемый товар.
- **`list`:** Возвращает список расходуемых товаров.
- **`create`:** Создает новый расходуемый товар.
- **`destroy`:** Удаляет расходуемый товар.
- **Права доступа:** Только аутентифицированные пользователи могут управлять расходуемыми товарами.