wcs_olap: improve comments on pg objects

This commit is contained in:
Benjamin Dauvergne 2016-06-18 09:26:46 +02:00
parent af6a453ffb
commit b972629182
1 changed files with 20 additions and 13 deletions

View File

@ -300,17 +300,21 @@ class WcsOlapFeeder(object):
def do_base_table(self):
# channels
self.create_labeled_table('{channel_table}', [[c[0], c[2]] for c in self.channels])
self.create_labeled_table('{channel_table}', [[c[0], c[2]] for c in self.channels],
comment=u'canal')
# roles
roles = dict((i, role.name) for i, role in enumerate(self.roles))
self.create_labeled_table('{role_table}', roles.items())
self.create_labeled_table('{role_table}', roles.items(), comment=u'role')
self.role_mapping = dict((role.id, i) for i, role in enumerate(self.roles))
# categories
self.create_labeled_table('{category_table}', enumerate(c.name for c in self.categories))
self.create_labeled_table('{category_table}', enumerate(c.name for c in self.categories),
comment=u'catégorie')
self.categories_mapping = dict((c.id, i) for i, c in enumerate(self.categories))
self.create_labeled_table('{hour_table}', zip(range(0, 24), map(str, range(0, 24))),
comment=u'heures')
# years
self.create_labeled_table('{year_table}', zip(range(2000, 2030), map(str, range(2000,
2030))))
@ -328,12 +332,12 @@ class WcsOlapFeeder(object):
u'jeudi', u'vendredi', u'samedi',
u'dimanche']))
self.create_labeled_table('{hour_table}', zip(range(0, 24), map(str, range(0, 24))))
self.create_labeled_table('{generic_status_table}', self.status)
self.create_labeled_table('{generic_status_table}', self.status,
comment=u'statuts simplifiés')
self.ex('CREATE TABLE {form_table} (id serial PRIMARY KEY,'
' category_id integer REFERENCES {category_table} (id),'
' label varchar)')
self.ex('COMMENT ON TABLE {form_table} IS %s', vars=(u'types de formulaire',))
self.columns = [
['id', 'serial primary key'],
['formdef_id', 'smallint REFERENCES {form_table} (id)'],
@ -356,6 +360,7 @@ class WcsOlapFeeder(object):
self.create_table('{generic_formdata_table}', self.columns)
for at, comment in self.comments.iteritems():
self.ex('COMMENT ON COLUMN {generic_formdata_table}.%s IS %%s' % at, vars=(comment,))
self.ex('COMMENT ON TABLE {generic_formdata_table} IS %s', vars=(u'tous les formulaires',))
def feed(self):
if self.do_feed:
@ -400,7 +405,9 @@ class WcsFormdefFeeder(object):
def do_statuses(self):
statuses = self.formdef.schema.workflow.statuses
self.olap_feeder.create_labeled_table(self.status_table_name,
enumerate([s.name for s in statuses]))
enumerate([s.name for s in statuses]),
comment=u'statuts du formulaire « %s »' %
self.formdef.schema.name)
self.status_mapping = dict((s.id, i) for i, s in enumerate(statuses))
def do_data_table(self):
@ -420,8 +427,8 @@ class WcsFormdefFeeder(object):
if not field.varname:
continue
self.fields.append(field)
comment = (u'dim$%s$Valeur du champ « %s » du formulaire %s'
% (field.label, field.label, self.formdef.schema.name))
comment = (u'valeurs du champ « %s » du formulaire %s'
% (field.label, self.formdef.schema.name))
table_name = self.hash_table_name('{formdata_table}_field_%s' % field.varname)
# create table and mapping
if field.items:
@ -439,24 +446,24 @@ class WcsFormdefFeeder(object):
at = 'field_%s' % field.varname
columns.append([at, 'smallint REFERENCES %s (id)' % table_name])
comments[at] = u'dim$' + field.label
comments[at] = field.label
# add geolocation fields
for geolocation, label in self.formdef.schema.geolocations:
at = 'geolocation_%s' % geolocation
columns.append([at, 'point'])
comments[at] = u'dim$' + label
comments[at] = label
# add function fields
for function, name in self.formdef.schema.workflow.functions.iteritems():
at = 'function_%s' % slugify(function)
columns.append([at, 'smallint REFERENCES {role_table} (id)'])
comments[at] = u'dim$Fonction « %s »' % name
comments[at] = u'fonction « %s »' % name
self.columns = ([name for name, _type in self.olap_feeder.columns]
+ [name for name, _type in columns])
self.create_table('{formdata_table}', columns, inherits='{generic_formdata_table}',
comment=u'cube$%s' % self.formdef.schema.name)
comment=u'formulaire %s' % self.formdef.schema.name)
for at, comment in comments.iteritems():
self.ex('COMMENT ON COLUMN {formdata_table}.%s IS %%s' % at, vars=(comment,))
# PostgreSQL does not propagate foreign key constraints to child tables