class AddForm(base.AddForm): form_fields = form.Fields(IBuscaPortlet) form_fields['root'].custom_widget = UberSelectionWidget label = _(u'Adiciona Portlet de Busca de Agenda') description = _(u'Este portlet busca no conteudo de agendas diarias.') def create(self, data): return Assignment(**data)
class IBuscaPortlet(IPortletDataProvider): """ Portlet de busca dentro da agenda """ root = schema.Choice( title=_(u'Raiz'), description=_(u'Informe a raiz da busca de Agendas Diarias'), required=False, source=SearchableTextSourceBinder({'is_folderish': True}, default_query='path:'))
def validate(self, value): """ Garantimos a unicidade das AgendasDiarias """ super(DateValidator, self).validate(value) date = value.strftime(AGENDADIARIAFMT) oIds = self.context.objectIds() if date in oIds: raise Invalid(_(u'Ja existe uma agenda para esta data'))
def long_date(self): date = self.date parts = {} parts['day'] = date.strftime('%d') parts['month'] = self.month() parts['year'] = date.strftime('%Y') return self.context.translate( Message(_(u'long_date_agenda'), mapping=parts))
def Title(self): """ Retorna titulo calculado com autoridade e data """ date = self.date fmt_date = date.strftime('%d/%m/%Y') autoridade = self.autoridade mapping = {'autoridade': autoridade, 'fmt_date': fmt_date} portal_state = getMultiAdapter((self, self.REQUEST), name=u'plone_portal_state') current_language = portal_state.language() tool = api.portal.get_tool('translation_service') # FIXME: Ao trocar a língua de um portal, o título de uma agenda não # será alterado no folder_contents. Como a recomendação atual de sites # multilíngues é a geração de Plone Sites distintos, essa situação # não será um problema, mas quando as discussões acerca do uso do # plone.app.multilingual evoluírem isso deve ser revisto. target_language = ('pt_BR' if current_language == 'pt-br' else current_language) return tool.translate(Message(_(u'agenda_diaria_title'), mapping=mapping), 'brasil.gov.agenda', context=self, target_language=target_language)
class EditForm(base.EditForm): form_fields = form.Fields(IBuscaPortlet) form_fields['root'].custom_widget = UberSelectionWidget label = _(u'Adiciona Portlet de Busca de Agenda') description = _(u'Este portlet busca no conteudo de agendas diarias.')
def title(self): return _(u'Busca de Agenda')