148 return self.printable_value(rtype, format='text/plain').lower() |
148 return self.printable_value(rtype, format='text/plain').lower() |
149 return value |
149 return value |
150 |
150 |
151 # edition helper functions ################################################ |
151 # edition helper functions ################################################ |
152 |
152 |
153 def linked_to(self, rtype, target, remove=True): |
153 def linked_to(self, rtype, role, remove=True): |
154 """if entity should be linked to another using __linkto form param for |
154 """if entity should be linked to another using __linkto form param for |
155 the given relation/target, return eids of related entities |
155 the given relation/role, return eids of related entities |
156 |
156 |
157 This method is consuming matching link-to information from form params |
157 This method is consuming matching link-to information from form params |
158 if `remove` is True (by default). |
158 if `remove` is True (by default). |
159 """ |
159 """ |
160 try: |
160 try: |
161 return self.__linkto[(rtype, target)] |
161 return self.__linkto[(rtype, role)] |
162 except AttributeError: |
162 except AttributeError: |
163 self.__linkto = {} |
163 self.__linkto = {} |
164 except KeyError: |
164 except KeyError: |
165 pass |
165 pass |
166 linktos = list(self.req.list_form_param('__linkto')) |
166 linktos = list(self.req.list_form_param('__linkto')) |
167 linkedto = [] |
167 linkedto = [] |
168 for linkto in linktos[:]: |
168 for linkto in linktos[:]: |
169 ltrtype, eid, lttarget = linkto.split(':') |
169 ltrtype, eid, ltrole = linkto.split(':') |
170 if rtype == ltrtype and target == lttarget: |
170 if rtype == ltrtype and role == ltrole: |
171 # delete __linkto from form param to avoid it being added as |
171 # delete __linkto from form param to avoid it being added as |
172 # hidden input |
172 # hidden input |
173 if remove: |
173 if remove: |
174 linktos.remove(linkto) |
174 linktos.remove(linkto) |
175 self.req.form['__linkto'] = linktos |
175 self.req.form['__linkto'] = linktos |
176 linkedto.append(typed_eid(eid)) |
176 linkedto.append(typed_eid(eid)) |
177 self.__linkto[(rtype, target)] = linkedto |
177 self.__linkto[(rtype, role)] = linkedto |
178 return linkedto |
178 return linkedto |
179 |
179 |
180 # edit controller callbacks ############################################### |
180 # edit controller callbacks ############################################### |
181 |
181 |
182 def after_deletion_path(self): |
182 def after_deletion_path(self): |