proper field's role handling: may be 'subject' / 'object' *in case
of entity's relation*, but None in other case. So you should correctly
specify it to field_by_name
"""Specific views for users:organization: Logilab:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses"""__docformat__="restructuredtext en"fromlogilab.mtconverterimportxml_escapefromcubicweb.selectorsimportone_line_rset,implements,match_user_groupsfromcubicweb.viewimportEntityViewfromcubicweb.webimportaction,uicfgfromcubicweb.web.viewsimportprimaryuicfg.primaryview_section.tag_attribute(('CWUser','login'),'hidden')uicfg.primaryview_section.tag_attribute(('CWGroup','name'),'hidden')uicfg.primaryview_section.tag_subject_of(('CWGroup','read_permission','*'),'relations')uicfg.primaryview_section.tag_subject_of(('CWGroup','add_permission','*'),'relations')uicfg.primaryview_section.tag_subject_of(('CWGroup','delete_permission','*'),'relations')uicfg.primaryview_section.tag_subject_of(('CWGroup','update_permission','*'),'relations')uicfg.primaryview_section.tag_object_of(('*','in_group','CWGroup'),'relations')uicfg.primaryview_section.tag_object_of(('*','require_group','CWGroup'),'relations')classUserPreferencesEntityAction(action.Action):__regid__='prefs'__select__=(one_line_rset()&implements('CWUser')&match_user_groups('owners','managers'))title=_('preferences')category='mainactions'defurl(self):login=self.cw_rset.get_entity(self.cw_rowor0,self.cw_color0).loginreturnself._cw.build_url('cwuser/%s'%login,vid='propertiesform')classFoafView(EntityView):__regid__='foaf'__select__=implements('CWUser')title=_('foaf')templatable=Falsecontent_type='text/xml'defcall(self):self.w(u'''<?xml version="1.0" encoding="%s"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> '''%self._cw.encoding)foriinxrange(self.cw_rset.rowcount):self.cell_call(i,0)self.w(u'</rdf:RDF>\n')defcell_call(self,row,col):entity=self.cw_rset.complete_entity(row,col)self.w(u'''<foaf:PersonalProfileDocument rdf:about=""> <foaf:maker rdf:resource="%s"/> <foaf:primaryTopic rdf:resource="%s"/> </foaf:PersonalProfileDocument>'''%(entity.absolute_url(),entity.absolute_url()))self.w(u'<foaf:Person rdf:ID="%s">\n'%entity.eid)self.w(u'<foaf:name>%s</foaf:name>\n'%xml_escape(entity.dc_long_title()))ifentity.surname:self.w(u'<foaf:family_name>%s</foaf:family_name>\n'%xml_escape(entity.surname))ifentity.firstname:self.w(u'<foaf:givenname>%s</foaf:givenname>\n'%xml_escape(entity.firstname))emailaddr=entity.get_email()ifemailaddr:self.w(u'<foaf:mbox>%s</foaf:mbox>\n'%xml_escape(emailaddr))self.w(u'</foaf:Person>\n')