feat: dodaj display_code polje za putne naloge (MT070626 format)
- 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:
@@ -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',
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -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),
|
||||
]
|
||||
Reference in New Issue
Block a user