ManyToManyBizobjExample: Base.py

File Base.py, 0.9 kB (added by paul, 3 years ago)
Line 
1 # -*- coding: utf-8 -*-
2
3 from dabo.lib import getRandomUUID
4 import dabo.lib.datanav2 as datanav
5
6 class Base(datanav.Bizobj):
7
8     def afterInit(self):
9         self.super()
10         self.setBaseSQL()
11
12
13     def initProperties(self):
14         self.AutoQuoteNames = False
15         self.AutoPopulatePK = False
16         self.DefaultValues["id"] = getRandomUUID
17         self.SaveNewUnchanged = True
18
19
20     def afterSave(self):
21         self.fillDerivedFields()
22
23
24     def fillDerivedFields(self):
25         """Hook for subclasses."""
26         pass
27
28
29     def setBaseSQL(self):
30         self.setLimitClause(2000)
31         pass
32
33
34     def addFieldsFromDataStructure(self):
35         max_fill = 0
36         for field in self.DataStructure:
37             if field[3] is not None:
38                 fill = len("%s.%s" % (field[3], field[4]))
39                 max_fill = max(max_fill, fill)
40         for field in self.DataStructure:
41             fill = " " * (max_fill - len("%s.%s" % (field[3], field[4])))
42             if field[3] is not None:
43                 self.addField("%s.%s %sas %s" % (field[3], field[4], fill, field[0]))