entities/schemaobjs.py
branchtls-sprint
changeset 1154 9b23a6836c32
parent 0 b97547f5f1fa
child 1398 5fe84a5f7035
equal deleted inserted replaced
1153:6a7636b32a97 1154:9b23a6836c32
     1 """schema definition related entities
     1 """schema definition related entities
     2 
     2 
     3 :organization: Logilab
     3 :organization: Logilab
     4 :copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     4 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     6 """
     6 """
     7 __docformat__ = "restructuredtext en"
     7 __docformat__ = "restructuredtext en"
     8 
     8 
     9 from logilab.common.decorators import cached
     9 from logilab.common.decorators import cached
    15 
    15 
    16 
    16 
    17 class EEType(AnyEntity):
    17 class EEType(AnyEntity):
    18     id = 'EEType'
    18     id = 'EEType'
    19     fetch_attrs, fetch_order = fetch_config(['name'])
    19     fetch_attrs, fetch_order = fetch_config(['name'])
    20     __rtags__ = {
    20 
    21         ('final',         '*', 'subject'): 'generated',
       
    22         
       
    23         ('state_of',      '*', 'object'): 'create',
       
    24         ('transition_of', '*', 'object'): 'create',
       
    25         ('from_entity',   '*', 'object'): 'link',
       
    26         ('to_entity',     '*', 'object'): 'link',
       
    27         }
       
    28     def dc_title(self):
    21     def dc_title(self):
    29         return self.req._(self.name)
    22         return self.req._(self.name)
    30     
    23     
    31     def dc_long_title(self):
    24     def dc_long_title(self):
    32         stereotypes = []
    25         stereotypes = []
    45 
    38 
    46 
    39 
    47 class ERType(AnyEntity):
    40 class ERType(AnyEntity):
    48     id = 'ERType'
    41     id = 'ERType'
    49     fetch_attrs, fetch_order = fetch_config(['name'])
    42     fetch_attrs, fetch_order = fetch_config(['name'])
    50     __rtags__ = {
       
    51         ('final',         '*', 'subject'): 'generated',
       
    52         
       
    53         ('relation_type', '*', 'object') : 'create',
       
    54         }
       
    55     
    43     
    56     def dc_title(self):
    44     def dc_title(self):
    57         return self.req._(self.name)
    45         return self.req._(self.name)
    58     
    46     
    59     def dc_long_title(self):
    47     def dc_long_title(self):
    98 
    86 
    99 
    87 
   100 class ENFRDef(AnyEntity):
    88 class ENFRDef(AnyEntity):
   101     id = 'ENFRDef'
    89     id = 'ENFRDef'
   102     fetch_attrs = fetch_config(['cardinality'])[0]
    90     fetch_attrs = fetch_config(['cardinality'])[0]
   103     __rtags__ = {
       
   104         ('relation_type', 'ERType', 'subject') : 'inlineview',
       
   105         ('from_entity', 'EEType', 'subject') : 'inlineview',
       
   106         ('to_entity', 'EEType', 'subject') : 'inlineview',
       
   107         }
       
   108     
    91     
   109     def dc_title(self):
    92     def dc_title(self):
   110         return u'%s %s %s' % (
    93         return u'%s %s %s' % (
   111             self.from_entity[0].name,
    94             self.from_entity[0].name,
   112             self.relation_type[0].name, 
    95             self.relation_type[0].name, 
   168 
   151 
   169         
   152         
   170 class RQLExpression(AnyEntity):
   153 class RQLExpression(AnyEntity):
   171     id = 'RQLExpression'
   154     id = 'RQLExpression'
   172     fetch_attrs, fetch_order = fetch_config(['exprtype', 'mainvars', 'expression'])
   155     fetch_attrs, fetch_order = fetch_config(['exprtype', 'mainvars', 'expression'])
   173 
       
   174     widgets = {
       
   175         'expression' : "StringWidget",
       
   176         }
       
   177 
   156 
   178     def dc_title(self):
   157     def dc_title(self):
   179         return '%s(%s)' % (self.exprtype, self.expression or u'')
   158         return '%s(%s)' % (self.exprtype, self.expression or u'')
   180 
   159 
   181     @property
   160     @property
   207 
   186 
   208 class EPermission(AnyEntity):
   187 class EPermission(AnyEntity):
   209     id = 'EPermission'
   188     id = 'EPermission'
   210     fetch_attrs, fetch_order = fetch_config(['name', 'label'])
   189     fetch_attrs, fetch_order = fetch_config(['name', 'label'])
   211 
   190 
   212 
       
   213     __rtags__ = {
       
   214         'require_group' : 'primary',
       
   215         }
       
   216 
       
   217     def dc_title(self):
   191     def dc_title(self):
   218         if self.label:
   192         if self.label:
   219             return '%s (%s)' % (self.req._(self.name), self.label)
   193             return '%s (%s)' % (self.req._(self.name), self.label)
   220         return self.req._(self.name)
   194         return self.req._(self.name)
   221     
   195