appobject.py
changeset 7990 a673d1d9a738
parent 7879 9aae456abab5
child 8190 2a3c1b787688
equal deleted inserted replaced
7989:db76e8aaec29 7990:a673d1d9a738
    41 
    41 
    42 from cubicweb.cwconfig import CubicWebConfiguration
    42 from cubicweb.cwconfig import CubicWebConfiguration
    43 
    43 
    44 def class_regid(cls):
    44 def class_regid(cls):
    45     """returns a unique identifier for an appobject class"""
    45     """returns a unique identifier for an appobject class"""
    46     if 'id' in cls.__dict__:
       
    47         warn('[3.6] %s.%s: id is deprecated, use __regid__'
       
    48              % (cls.__module__, cls.__name__), DeprecationWarning)
       
    49         cls.__regid__ = cls.id
       
    50     if hasattr(cls, 'id') and not isinstance(cls.id, property):
       
    51         return cls.id
       
    52     return cls.__regid__
    46     return cls.__regid__
    53 
    47 
    54 # helpers for debugging selectors
    48 # helpers for debugging selectors
    55 TRACED_OIDS = None
    49 TRACED_OIDS = None
    56 
    50 
   412 
   406 
   413         It must return the object that will be actually registered (this may be
   407         It must return the object that will be actually registered (this may be
   414         the right hook to create an instance for example). By default the
   408         the right hook to create an instance for example). By default the
   415         appobject is returned without any transformation.
   409         appobject is returned without any transformation.
   416         """
   410         """
   417         try: # XXX < 3.6 bw compat
   411         pdefs = getattr(cls, 'cw_property_defs', {})
   418             pdefs = cls.property_defs # pylint: disable=E1101
       
   419         except AttributeError:
       
   420             pdefs = getattr(cls, 'cw_property_defs', {})
       
   421         else:
       
   422             warn('[3.6] property_defs is deprecated, use cw_property_defs in %s'
       
   423                  % cls, DeprecationWarning)
       
   424         for propid, pdef in pdefs.items():
   412         for propid, pdef in pdefs.items():
   425             pdef = pdef.copy() # may be shared
   413             pdef = pdef.copy() # may be shared
   426             pdef['default'] = getattr(cls, propid, pdef['default'])
   414             pdef['default'] = getattr(cls, propid, pdef['default'])
   427             pdef['sitewide'] = getattr(cls, 'site_wide', pdef.get('sitewide'))
   415             pdef['sitewide'] = getattr(cls, 'site_wide', pdef.get('sitewide'))
   428             registry.vreg.register_property(cls._cwpropkey(propid), **pdef)
   416             registry.vreg.register_property(cls._cwpropkey(propid), **pdef)
   469 
   457 
   470         <cls.__registry__>.<cls.id>.<propid>
   458         <cls.__registry__>.<cls.id>.<propid>
   471         """
   459         """
   472         return self._cw.property_value(self._cwpropkey(propid))
   460         return self._cw.property_value(self._cwpropkey(propid))
   473 
   461 
   474     # deprecated ###############################################################
       
   475 
       
   476     @property
       
   477     @deprecated('[3.6] use self.__regid__')
       
   478     def id(self):
       
   479         return self.__regid__
       
   480 
       
   481     @property
       
   482     @deprecated('[3.6] use self._cw.vreg')
       
   483     def vreg(self):
       
   484         return self._cw.vreg
       
   485 
       
   486     @property
       
   487     @deprecated('[3.6] use self._cw.vreg.schema')
       
   488     def schema(self):
       
   489         return self._cw.vreg.schema
       
   490 
       
   491     @property
       
   492     @deprecated('[3.6] use self._cw.vreg.config')
       
   493     def config(self):
       
   494         return self._cw.vreg.config
       
   495 
       
   496     @property
       
   497     @deprecated('[3.6] use self._cw')
       
   498     def req(self):
       
   499         return self._cw
       
   500 
       
   501     @deprecated('[3.6] use self.cw_rset')
       
   502     def get_rset(self):
       
   503         return self.cw_rset
       
   504     @deprecated('[3.6] use self.cw_rset')
       
   505     def set_rset(self, rset):
       
   506         self.cw_rset = rset
       
   507     rset = property(get_rset, set_rset)
       
   508 
       
   509     @property
       
   510     @deprecated('[3.6] use self.cw_row')
       
   511     def row(self):
       
   512         return self.cw_row
       
   513 
       
   514     @property
       
   515     @deprecated('[3.6] use self.cw_col')
       
   516     def col(self):
       
   517         return self.cw_col
       
   518 
       
   519     @property
       
   520     @deprecated('[3.6] use self.cw_extra_kwargs')
       
   521     def extra_kwargs(self):
       
   522         return self.cw_extra_kwargs
       
   523 
       
   524     @deprecated('[3.6] use self._cw.view')
       
   525     def view(self, *args, **kwargs):
       
   526         return self._cw.view(*args, **kwargs)
       
   527 
       
   528     @property
       
   529     @deprecated('[3.6] use self._cw.varmaker')
       
   530     def varmaker(self):
       
   531         return self._cw.varmaker
       
   532 
       
   533     @deprecated('[3.6] use self._cw.get_cache')
       
   534     def get_cache(self, cachename):
       
   535         return self._cw.get_cache(cachename)
       
   536 
       
   537     @deprecated('[3.6] use self._cw.build_url')
       
   538     def build_url(self, *args, **kwargs):
       
   539         return self._cw.build_url(*args, **kwargs)
       
   540 
       
   541     @deprecated('[3.6] use self.cw_rset.limited_rql')
       
   542     def limited_rql(self):
       
   543         return self.cw_rset.limited_rql()
       
   544 
       
   545     @deprecated('[3.6] use self.cw_rset.complete_entity(row,col) instead')
       
   546     def complete_entity(self, row, col=0, skip_bytes=True):
       
   547         return self.cw_rset.complete_entity(row, col, skip_bytes)
       
   548 
       
   549     @deprecated('[3.6] use self.cw_rset.get_entity(row,col) instead')
       
   550     def entity(self, row, col=0):
       
   551         return self.cw_rset.get_entity(row, col)
       
   552 
       
   553     @deprecated('[3.6] use self._cw.user_rql_callback')
       
   554     def user_rql_callback(self, args, msg=None):
       
   555         return self._cw.user_rql_callback(args, msg)
       
   556 
       
   557     @deprecated('[3.6] use self._cw.user_callback')
       
   558     def user_callback(self, cb, args, msg=None, nonify=False):
       
   559         return self._cw.user_callback(cb, args, msg, nonify)
       
   560 
       
   561     @deprecated('[3.6] use self._cw.format_date')
       
   562     def format_date(self, date, date_format=None, time=False):
       
   563         return self._cw.format_date(date, date_format, time)
       
   564 
       
   565     @deprecated('[3.6] use self._cw.format_time')
       
   566     def format_time(self, time):
       
   567         return self._cw.format_time(time)
       
   568 
       
   569     @deprecated('[3.6] use self._cw.format_float')
       
   570     def format_float(self, num):
       
   571         return self._cw.format_float(num)
       
   572 
       
   573     @deprecated('[3.6] use self._cw.parse_datetime')
       
   574     def parse_datetime(self, value, etype='Datetime'):
       
   575         return self._cw.parse_datetime(value, etype)
       
   576 
       
   577     @deprecated('[3.6] use self.cw_propval')
       
   578     def propval(self, propid):
       
   579         return self._cw.property_value(self._cwpropkey(propid))
       
   580 
       
   581     # these are overridden by set_log_methods below
   462     # these are overridden by set_log_methods below
   582     # only defining here to prevent pylint from complaining
   463     # only defining here to prevent pylint from complaining
   583     info = warning = error = critical = exception = debug = lambda msg,*a,**kw: None
   464     info = warning = error = critical = exception = debug = lambda msg,*a,**kw: None
   584 
   465 
   585 set_log_methods(AppObject, getLogger('cubicweb.appobject'))
   466 set_log_methods(AppObject, getLogger('cubicweb.appobject'))