Exemplo n.º 1
0
        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)
Exemplo n.º 2
0
        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)
Exemplo n.º 3
0
            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)
Exemplo n.º 4
0
    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)