예제 #1
0
 def _sendMessage(self):
     """Send en email message to found email address"""
     subject = self._form.get('subject')
     message = self._form.get('message')
     results = self.search_results()
     plone_utils = getToolByName(self.context, 'plone_utils')
     if not subject or not message:
         plone_utils.addPortalMessage(_('send_message_missing_data',
                                        default=u"You must provide a subject and a text message "
                                                u"for the mail to be sent"),
                                      type="error")
         return False
     results = [x['user_email'] for x in results if x['user_email']]
     if not results:
         plone_utils.addPortalMessage(_('no_users_found',
                                        default=u"Your search doesn't find any valid email address"),
                                      type="error")
         return False
     mail_host = getToolByName(self.context, 'MailHost')
     mfrom = getToolByName(self.context, 'portal_url').getPortalObject().getProperty('email_from_address')
     if not mfrom:
         plone_utils.addPortalMessage(_('mail_configuration_error',
                                        default=u"Cannot send messages. Check mailhost configuration."),
                                      type="error")
         return False
     for email in results:
         mail_host.secureSend(message, mto=email, mfrom=mfrom, subject=subject)
     plone_utils.addPortalMessage(_('mail_sent',
                                    default=u"Message sent to $count recipients",
                                    mapping={'count': len(results)}),
                                  type="info")
     return True
예제 #2
0
 def search_results(self):
     """Search results"""
     self._prepare_interval()
     portal = getToolByName(self.context, 'portal_url').getPortalObject()
     
     try:
        return self._sole_query(portal.getId())
        
     except ComponentLookupError:
         self.request.response.redirect("%s/%s" % (portal.absolute_url(), self.__name__))
         portal.plone_utils.addPortalMessage(_('component_lookup_error',
                                               default=u"Could not connect to the database engine. "
                                                       u"Please check your configuration"),
                                             type="error")
         return []