Revision 140513a9
b/snf-quotaholder-app/quotaholder_django/quotaholder_app/models.py | ||
---|---|---|
34 | 34 |
|
35 | 35 |
from synnefo.lib.commissioning import CorruptedError |
36 | 36 |
|
37 |
from django.db.models import Model, BigIntegerField, CharField, ForeignKey |
|
37 |
from django.db.models import (Model, BigIntegerField, CharField, |
|
38 |
ForeignKey, AutoField) |
|
38 | 39 |
from django.db import transaction |
39 | 40 |
|
40 | 41 |
|
... | ... | |
45 | 46 |
strval = CharField(max_length=4096) |
46 | 47 |
|
47 | 48 |
|
48 |
def alloc_serial(nr=1): |
|
49 |
if nr < 0: |
|
50 |
m = "Can only receive a positive argument, not %d" % (nr,) |
|
51 |
raise CorruptedError(m) |
|
52 |
|
|
53 |
try: |
|
54 |
holder = Holder.objects.get(attribute='serial') |
|
55 |
except Holder.DoesNotExist: |
|
56 |
holder = Holder(attribute='serial', intval=1) |
|
57 |
|
|
58 |
serial = holder.intval |
|
59 |
holder.intval += nr |
|
60 |
holder.save() |
|
61 |
|
|
62 |
return serial |
|
63 |
|
|
64 |
|
|
65 | 49 |
class Entity(Model): |
66 | 50 |
|
67 | 51 |
entity = CharField(max_length=4096, primary_key=True) |
... | ... | |
108 | 92 |
|
109 | 93 |
class Commission(Model): |
110 | 94 |
|
111 |
serial = BigIntegerField(primary_key=True, default=alloc_serial)
|
|
95 |
serial = AutoField(primary_key=True)
|
|
112 | 96 |
entity = ForeignKey(Entity, to_field='entity') |
113 | 97 |
name = CharField(max_length=4096, null=True) |
114 | 98 |
clientkey = CharField(max_length=4096, null=False) |
Also available in: Unified diff