Revision 08ce0e6f snf-quotaholder-app/quotaholder_django/quotaholder_app/models.py

b/snf-quotaholder-app/quotaholder_django/quotaholder_app/models.py
35 35
from synnefo.lib.commissioning import CorruptedError
36 36

  
37 37
from django.db.models import (Model, BigIntegerField, CharField,
38
                              ForeignKey, AutoField)
38
                              ForeignKey, AutoField, DecimalField)
39 39
from django.db import transaction
40 40
from .managers import ForUpdateManager
41 41

  
42
DECIMAL_DIGITS  =   38
43
QH_MAX_INT      =   10**32
44

  
45
def decimalField(**kwargs):
46
    return DecimalField(max_digits=DECIMAL_DIGITS, decimal_places=0, **kwargs)
47

  
42 48
class Holder(Model):
43 49

  
44 50
    attribute   =   CharField(max_length=4096, primary_key=True)
......
59 65
class Policy(Model):
60 66

  
61 67
    policy          =   CharField(max_length=4096, primary_key=True)
62
    quantity        =   BigIntegerField(null=True, default=None)
63
    capacity        =   BigIntegerField(null=True,  default=None)
64
    import_limit    =   BigIntegerField(null=True,  default=None)
65
    export_limit    =   BigIntegerField(null=True,  default=None)
68
    quantity        =   decimalField()
69
    capacity        =   decimalField()
70
    import_limit    =   decimalField()
71
    export_limit    =   decimalField()
66 72

  
67 73
    objects     =   ForUpdateManager()
68 74

  
......
74 80
    policy      =   ForeignKey(Policy, to_field='policy')
75 81
    flags       =   BigIntegerField(null=False, default=0)
76 82

  
77
    imported    =   BigIntegerField(null=False, default=0)
78
    importing   =   BigIntegerField(null=False, default=0)
79
    exported    =   BigIntegerField(null=False, default=0)
80
    exporting   =   BigIntegerField(null=False, default=0)
81
    returned    =   BigIntegerField(null=False, default=0)
82
    returning   =   BigIntegerField(null=False, default=0)
83
    released    =   BigIntegerField(null=False, default=0)
84
    releasing   =   BigIntegerField(null=False, default=0)
83
    imported    =   decimalField(default=0)
84
    importing   =   decimalField(default=0)
85
    exported    =   decimalField(default=0)
86
    exporting   =   decimalField(default=0)
87
    returned    =   decimalField(default=0)
88
    returning   =   decimalField(default=0)
89
    released    =   decimalField(default=0)
90
    releasing   =   decimalField(default=0)
85 91

  
86 92
    objects     =   ForUpdateManager()
87 93

  
......
113 119

  
114 120
    entity      =   ForeignKey(Entity, to_field='entity')
115 121
    resource    =   CharField(max_length=4096, null=False)
116
    quantity    =   BigIntegerField(null=False)
122
    quantity    =   decimalField()
117 123

  
118 124
    objects     =   ForUpdateManager()
119 125

  
......
126 132
    issue_time          =   CharField(max_length=4096)
127 133
    log_time            =   CharField(max_length=4096)
128 134
    resource            =   CharField(max_length=4096)
129
    source_quantity     =   BigIntegerField(null=True)
130
    source_capacity     =   BigIntegerField(null=True)
131
    source_import_limit =   BigIntegerField(null=True)
132
    source_export_limit =   BigIntegerField(null=True)
133
    source_imported     =   BigIntegerField(null=False)
134
    source_exported     =   BigIntegerField(null=False)
135
    source_returned     =   BigIntegerField(null=False)
136
    source_released     =   BigIntegerField(null=False)
137
    target_quantity     =   BigIntegerField(null=True)
138
    target_capacity     =   BigIntegerField(null=True)
139
    target_import_limit =   BigIntegerField(null=True)
140
    target_export_limit =   BigIntegerField(null=True)
141
    target_imported     =   BigIntegerField(null=False)
142
    target_exported     =   BigIntegerField(null=False)
143
    target_returned     =   BigIntegerField(null=False)
144
    target_released     =   BigIntegerField(null=False)
145
    delta_quantity      =   BigIntegerField(null=False)
135
    source_quantity     =   decimalField()
136
    source_capacity     =   decimalField()
137
    source_import_limit =   decimalField()
138
    source_export_limit =   decimalField()
139
    source_imported     =   decimalField()
140
    source_exported     =   decimalField()
141
    source_returned     =   decimalField()
142
    source_released     =   decimalField()
143
    target_quantity     =   decimalField()
144
    target_capacity     =   decimalField()
145
    target_import_limit =   decimalField()
146
    target_export_limit =   decimalField()
147
    target_imported     =   decimalField()
148
    target_exported     =   decimalField()
149
    target_returned     =   decimalField()
150
    target_released     =   decimalField()
151
    delta_quantity      =   decimalField()
146 152
    reason              =   CharField(max_length=4096)
147 153

  
148 154
    objects     =   ForUpdateManager()

Also available in: Unified diff