Добавил превьюшки дхф и настройки сервера
All checks were successful
Deploy MES Core / deploy (push) Successful in 3m32s
All checks were successful
Deploy MES Core / deploy (push) Successful in 3m32s
This commit is contained in:
@@ -64,13 +64,15 @@ class ProductionTask(models.Model):
|
||||
Создается технологом или мастером на основе заказа.
|
||||
"""
|
||||
deal = models.ForeignKey(Deal, on_delete=models.CASCADE, verbose_name="Сделка")
|
||||
|
||||
|
||||
drawing_name = models.CharField("Название детали", max_length=255, blank=True, default="Б/ч")
|
||||
size_value = models.FloatField("Размер детали", help_text="Длина (мм) или Толщина (мм)")
|
||||
|
||||
|
||||
drawing_file = models.FileField("Исходник (DXF/IGES)", upload_to="drawings/%Y/%m/", blank=True, null=True)
|
||||
extra_drawing = models.FileField("Доп. чертеж (PDF)", upload_to="extra_drawings/%Y/%m/", blank=True, null=True)
|
||||
|
||||
preview_image = models.ImageField("Превью DXF (PNG)", upload_to="task_previews/%Y/%m/", blank=True, null=True)
|
||||
blank_dimensions = models.CharField("Габариты заготовки", max_length=64, blank=True, default="")
|
||||
|
||||
material = models.ForeignKey(WarehouseMaterial, on_delete=models.PROTECT, verbose_name="Материал")
|
||||
quantity_ordered = models.PositiveIntegerField("Заказано всего, шт")
|
||||
is_bend = models.BooleanField("Гибка", default=False)
|
||||
@@ -84,6 +86,47 @@ class ProductionTask(models.Model):
|
||||
def __str__(self):
|
||||
return f"{self.drawing_name} (Заказ {self.deal.number})"
|
||||
|
||||
class DxfPreviewSettings(models.Model):
|
||||
"""Настройки генерации превью для DXF.
|
||||
|
||||
Храним в БД, чтобы админ мог менять параметры через страницу «Обслуживание сервера»
|
||||
без правок кода.
|
||||
|
||||
Сделано как singleton: ожидается одна строка (обычно pk=1).
|
||||
"""
|
||||
|
||||
line_color = models.CharField(
|
||||
"Цвет линий превью (HEX)",
|
||||
max_length=16,
|
||||
default="#006400",
|
||||
help_text="Напр: #006400 (тёмно-зелёный)",
|
||||
)
|
||||
lineweight_scaling = models.FloatField(
|
||||
"Коэффициент толщины линий",
|
||||
default=1.0,
|
||||
help_text="1.0 = как в DXF, 2.0 = толще, 0.5 = тоньше",
|
||||
)
|
||||
min_lineweight = models.FloatField(
|
||||
"Минимальная толщина (мм)",
|
||||
default=0.1,
|
||||
help_text="Если в DXF нет lineweight — используем минимум, чтобы линии были видимы",
|
||||
)
|
||||
keep_original_colors = models.BooleanField(
|
||||
"Оставить цвета оригинальные",
|
||||
default=False,
|
||||
help_text="Если включено — не перекрашиваем линии, берём цвета из DXF",
|
||||
)
|
||||
|
||||
updated_at = models.DateTimeField("Обновлено", auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Настройки превью DXF"
|
||||
verbose_name_plural = "Настройки превью DXF"
|
||||
|
||||
def __str__(self):
|
||||
return "Настройки превью DXF"
|
||||
|
||||
|
||||
class Item(models.Model):
|
||||
"""
|
||||
Единица сменного задания. Определяет КТО, КОГДА и СКОЛЬКО сделал.
|
||||
|
||||
Reference in New Issue
Block a user