for brain in self._data(): employee = brain.getObject() yield dict(title=registrant.name, url=brain.getURL()) @memoize def _data(self): context = aq_inner(self.context) limit = self.data.count query = dict(object_provides = IEmployee.__identifier__) query['sort_on'] = 'modified' query['sort_order'] = 'reverse' query['sort_limit'] = limit if not self.data.sitewide: query['path'] = '/'.join(context.getPhysicalPath()) # Ensure that we only get active objects, even if the user would # normally have the rights to view inactive objects (as an # administrator would) query['effectiveRange'] = DateTime() catalog = getToolByName(context, 'portal_catalog') results = catalog(query) employeefolder = results[:limit] return employeefolder atapi.registerType(Employeefolder, PROJECTNAME)
degreeAfter = self.getDegreeAfter() if degreeAfter: displayname += ", " + degreeAfter if showPosition and position: displayname += ", " + position return displayname security.declarePublic('DisplayNamePosition') def DisplayNamePosition(self): """Returns the complete Name (without salutation) and position""" lst = [self.getDegree(), self.getFirstname(), self.getMiddlename(), self.getLastname()] displayname = ' '.join([(x or '').strip() for x in lst]) position = self.getPosition() if position: displayname += ", " + position return displayname def setTitle(self, title): """ ISE-11: Dummy mutator for 'title'. Since 'title' is a computed field we must provide a dummy implementation in order to let the setTitle() operation work on the object itself instead of letting Plone call the setTitle() on the acquisition parent (causing a EmployeeFolder renaming operation). """ pass atapi.registerType(Employee, PROJECTNAME)
can be filtered by adding the related country codes to portal_properties.vsorg_properties.allowedCountryCodes. """ pprop = getToolByName(self, 'portal_properties') vsprop = getToolByName(pprop, 'vsorg_properties') allowed_codes = vsprop.allowedCountryCodes allowed_codes = [code.lower().strip() for code in allowed_codes] result = atapi.DisplayList() result.add(u'', _(u'please_select_a_country')) for country in pycountry.countries: if allowed_codes and not country.alpha2.lower() in allowed_codes: continue result.add(country.alpha2, country.name) return result def getProvinceVocabulary(self, master): """ Return corresponding provinces """ try: subdivisions = list(pycountry.subdivisions.get(country_code=master)) except KeyError: subdivisions = [] result = list() for subdiv in subdivisions: result.append((subdiv.code, subdiv.name)) result.sort(lambda x,y: cmp(x[1], y[1])) result.insert(0, (u'', _(u'please_select_a_province'))) return atapi.DisplayList(result) atapi.registerType(Institution, PROJECTNAME)
buildingsection = atapi.ATFieldProperty('buildingsection') specialisation = atapi.ATFieldProperty('specialisation') security.declareProtected(View, 'getDepartment') def getDepartment(self): """ return the department """ return self def at_post_edit_script(self, *args, **kw): """ Filter out empty number fields """ super(Department, self).at_post_edit_script(*args, **kw) numbers = self.getNumbers() numbers = [d for d in numbers if d['number']] self.setNumbers(numbers) atapi.registerType(Department, PROJECTNAME) @adapter(IDepartment, IObjectInitializedEvent) def setup_department_portlets(obj, event): column = getUtility(IPortletManager, name=DEPARTMENTS_PORTLET_COLUMN) manager = getMultiAdapter((obj, column,), IPortletAssignmentMapping) has_department = False for value in manager.values(): if value.__name__ == 'label_departmentportlet': has_department = True if not has_department: assignment_department = departmentportlet.DepartmentPortletAssignment(department_uid=obj.UID()) chooser = INameChooser(manager) department_name = chooser.chooseName(None, assignment_department)