web/controller.py
changeset 4277 35cd057339b2
parent 4252 6c4f109c2b03
child 4636 edafa2343dd7
equal deleted inserted replaced
4276:e2ed81c20e74 4277:35cd057339b2
    32         if navparam == redirectparam:
    32         if navparam == redirectparam:
    33             continue
    33             continue
    34         if redirectparam in form:
    34         if redirectparam in form:
    35             params[navparam] = form[redirectparam]
    35             params[navparam] = form[redirectparam]
    36     return params
    36     return params
    37 
       
    38 def parse_relations_descr(rdescr):
       
    39     """parse a string describing some relations, in the form
       
    40     subjeids:rtype:objeids
       
    41     where subjeids and objeids are eids separeted by a underscore
       
    42 
       
    43     return an iterator on (subject eid, relation type, object eid) found
       
    44     """
       
    45     for rstr in rdescr:
       
    46         subjs, rtype, objs = rstr.split(':')
       
    47         for subj in subjs.split('_'):
       
    48             for obj in objs.split('_'):
       
    49                 yield typed_eid(subj), rtype, typed_eid(obj)
       
    50 
    37 
    51 def append_url_params(url, params):
    38 def append_url_params(url, params):
    52     """append raw parameters to the url. Given parameters, if any, are expected
    39     """append raw parameters to the url. Given parameters, if any, are expected
    53     to be already url-quoted.
    40     to be already url-quoted.
    54     """
    41     """
   134             self._after_deletion_path = iter(redirect_info).next()
   121             self._after_deletion_path = iter(redirect_info).next()
   135         if len(eidtypes) > 1:
   122         if len(eidtypes) > 1:
   136             self._cw.set_message(self._cw._('entities deleted'))
   123             self._cw.set_message(self._cw._('entities deleted'))
   137         else:
   124         else:
   138             self._cw.set_message(self._cw._('entity deleted'))
   125             self._cw.set_message(self._cw._('entity deleted'))
   139 
       
   140     def delete_relations(self, rdefs):
       
   141         """delete relations from the repository"""
       
   142         # FIXME convert to using the syntax subject:relation:eids
       
   143         execute = self._cw.execute
       
   144         for subj, rtype, obj in rdefs:
       
   145             rql = 'DELETE X %s Y where X eid %%(x)s, Y eid %%(y)s' % rtype
       
   146             execute(rql, {'x': subj, 'y': obj}, ('x', 'y'))
       
   147         self._cw.set_message(self._cw._('relations deleted'))
       
   148 
       
   149     def insert_relations(self, rdefs):
       
   150         """insert relations into the repository"""
       
   151         execute = self._cw.execute
       
   152         for subj, rtype, obj in rdefs:
       
   153             rql = 'SET X %s Y where X eid %%(x)s, Y eid %%(y)s' % rtype
       
   154             execute(rql, {'x': subj, 'y': obj}, ('x', 'y'))
       
   155 
   126 
   156 
   127 
   157     def reset(self):
   128     def reset(self):
   158         """reset form parameters and redirect to a view determinated by given
   129         """reset form parameters and redirect to a view determinated by given
   159         parameters
   130         parameters