web/views/ajaxedit.py
changeset 3451 6b46d73823f5
parent 3377 dd9d292b6a6d
child 4045 f4a52abb6f4f
equal deleted inserted replaced
3448:495862266785 3451:6b46d73823f5
    26     expected_kwargs = form_params = ('rtype', 'target')
    26     expected_kwargs = form_params = ('rtype', 'target')
    27 
    27 
    28     build_js = EditRelationBoxTemplate.build_reload_js_call
    28     build_js = EditRelationBoxTemplate.build_reload_js_call
    29 
    29 
    30     def cell_call(self, row, col, rtype=None, target=None, etype=None):
    30     def cell_call(self, row, col, rtype=None, target=None, etype=None):
    31         self.rtype = rtype or self.req.form['rtype']
    31         self.rtype = rtype or self._cw.form['rtype']
    32         self.target = target or self.req.form['target']
    32         self.target = target or self._cw.form['target']
    33         self.etype = etype or self.req.form.get('etype')
    33         self.etype = etype or self._cw.form.get('etype')
    34         entity = self.rset.get_entity(row, col)
    34         entity = self.cw_rset.get_entity(row, col)
    35         rschema = self.schema.rschema(self.rtype)
    35         rschema = self._cw.schema.rschema(self.rtype)
    36         if not self.etype:
    36         if not self.etype:
    37             if self.target == 'object':
    37             if self.target == 'object':
    38                 etypes = rschema.objects(entity.e_schema)
    38                 etypes = rschema.objects(entity.e_schema)
    39             else:
    39             else:
    40                 etypes = rschema.subjects(entity.e_schema)
    40                 etypes = rschema.subjects(entity.e_schema)
    41             if len(etypes) == 1:
    41             if len(etypes) == 1:
    42                 self.etype = etypes[0]
    42                 self.etype = etypes[0]
    43         self.w(u'<div id="%s">' % self.id)
    43         self.w(u'<div id="%s">' % self.__regid__)
    44         self.w(u'<h1>%s</h1>' % self.req._('relation %(relname)s of %(ent)s')
    44         self.w(u'<h1>%s</h1>' % self._cw._('relation %(relname)s of %(ent)s')
    45                % {'relname': rschema.display_name(self.req, role(self)),
    45                % {'relname': rschema.display_name(self._cw, role(self)),
    46                   'ent': entity.view('incontext')})
    46                   'ent': entity.view('incontext')})
    47         self.w(u'<ul>')
    47         self.w(u'<ul>')
    48         for boxitem in self.unrelated_boxitems(entity):
    48         for boxitem in self.unrelated_boxitems(entity):
    49             boxitem.render(self.w)
    49             boxitem.render(self.w)
    50         self.w(u'</ul></div>')
    50         self.w(u'</ul></div>')
    57         """
    57         """
    58         # use entity.unrelated if we've been asked for a particular etype
    58         # use entity.unrelated if we've been asked for a particular etype
    59         if getattr(self, 'etype', None):
    59         if getattr(self, 'etype', None):
    60             rset = entity.unrelated(self.rtype, self.etype, role(self),
    60             rset = entity.unrelated(self.rtype, self.etype, role(self),
    61                                     ordermethod='fetch_order')
    61                                     ordermethod='fetch_order')
    62             self.pagination(self.req, rset, w=self.w)
    62             self.pagination(self._cw, rset, w=self.w)
    63             return rset.entities()
    63             return rset.entities()
    64         # in other cases, use vocabulary functions
    64         # in other cases, use vocabulary functions
    65         entities = []
    65         entities = []
    66         # XXX to update for 3.2
    66         # XXX to update for 3.2
    67         for _, eid in entity.vocabulary(self.rtype, role(self)):
    67         for _, eid in entity.vocabulary(self.rtype, role(self)):
    68             if eid is not None:
    68             if eid is not None:
    69                 rset = self.req.eid_rset(eid)
    69                 rset = self._cw.eid_rset(eid)
    70                 entities.append(rset.get_entity(0, 0))
    70                 entities.append(rset.get_entity(0, 0))
    71         return entities
    71         return entities