feat: dodaj display_code polje za putne naloge (MT070626 format)
Some checks failed
ERP CI/CD Pipeline / test (push) Has been cancelled
ERP CI/CD Pipeline / Deploy (server git pull + compose) (push) Has been cancelled

- Dodano polje 'display_code' na WorkOrder model (format: 2 inicijala + ddmmyy)
- Migracije za kreiranje polja i backfill postojećih naloga
- Ažuriran WorkOrderSerializer za validaciju i serijalizaciju display_code
- Backend tasks za auto-generiranje display_code pri kreiranju
- Frontend komponente ažurirane za prikaz display_code umjesto UUID:
  * FleetDashboardShell tablica putnih naloga
  * WorkOrderDetailModal
  * TaskCreateModal
  * Sve PDF stranice
- displayIds.js utility za formatiranjeDisplay ID-eva
- Admin interface prikazuje display_code
This commit is contained in:
mariomitte
2026-07-17 23:53:47 +02:00
parent ef8718a4cf
commit bf8e25efe7
19 changed files with 377 additions and 54 deletions

View File

@@ -0,0 +1,24 @@
# Generated by Django 5.2.15 on 2026-07-17 21:55
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('fleet', '0024_alter_workorderphoto_created_at_and_more'),
]
operations = [
migrations.AddField(
model_name='workorder',
name='display_code',
field=models.CharField(
blank=True,
db_index=True,
help_text='Format: MT070626 (2 slova + 6 znamenki).',
max_length=8,
verbose_name='Prikaz putnog naloga',
),
),
]

View File

@@ -0,0 +1,30 @@
from django.db import migrations
def backfill_workorder_display_code(apps, schema_editor):
WorkOrder = apps.get_model('fleet', 'WorkOrder')
for work_order in WorkOrder.objects.select_related('creator').all():
current_code = str(getattr(work_order, 'display_code', '') or '').strip().upper()
if current_code:
continue
creator = getattr(work_order, 'creator', None)
first_name = str(getattr(creator, 'first_name', '') or '').strip()
last_name = str(getattr(creator, 'last_name', '') or '').strip()
if not first_name or not last_name:
continue
order_date = getattr(work_order, 'date', None)
if not order_date:
continue
display_code = f"{first_name[0].upper()}{last_name[0].upper()}{order_date.strftime('%d%m%y')}"
WorkOrder.objects.filter(pk=work_order.pk).update(display_code=display_code)
class Migration(migrations.Migration):
dependencies = [
('fleet', '0025_workorder_display_code'),
]
operations = [
migrations.RunPython(backfill_workorder_display_code, migrations.RunPython.noop),
]