44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
# Generated by Django 2.2.6 on 2020-01-27 11:21
|
|
|
|
from django.db import migrations, models
|
|
import random
|
|
import string
|
|
|
|
def eb_number():
|
|
rand_str = "".join([random.choice(list(string.digits)) for i in range(3)])
|
|
return "1{}".format(rand_str)
|
|
|
|
def set_inventory_number_eb(apps, schema_editor):
|
|
Item = apps.get_model('catalog', 'Item')
|
|
for item in Item.objects.all():
|
|
if item.inventory_number_eb is None:
|
|
inventory_nb = eb_number()
|
|
while Item.objects.filter(inventory_number_eb=inventory_nb).count() > 0:
|
|
inventory_nb = eb_number()
|
|
item.inventory_number_eb = inventory_nb
|
|
item.save()
|
|
else:
|
|
if len(item.inventory_number_eb) == 0:
|
|
inventory_nb = eb_number()
|
|
while Item.objects.filter(inventory_number_eb=inventory_nb).count() > 0:
|
|
inventory_nb = eb_number()
|
|
item.inventory_number_eb = inventory_nb
|
|
item.save()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('catalog', '0042_comment_labelled'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(set_inventory_number_eb,
|
|
reverse_code=migrations.RunPython.noop),
|
|
migrations.AlterField(
|
|
model_name='item',
|
|
name='inventory_number_eb',
|
|
field=models.CharField(db_index=True, max_length=4, unique=True, verbose_name='Inventory number (eb)'),
|
|
),
|
|
]
|