alpinesmuseum-public/catalog/migrations/0043_inventory_number_eb_re...

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)'),
),
]