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 |