def view_email(self, filename, REQUEST=None, RESPONSE=None): """ Display a specfic saved email """ email = get_bulk_email(self.getSite(), filename, where_to_read=path_in_site(self.getMeeting())) return self.getFormsTool().getContent( {'here': self, 'email': email, 'meeting': self.getMeeting()}, 'naaya.content.meeting.email_view_email')
def view_email(self, filename, REQUEST=None, RESPONSE=None): """ Display a specfic saved email """ email = get_bulk_email(self.getSite(), filename, where_to_read=path_in_site( self.get_consultation())) return self.getFormsTool().getContent( {'here': self, 'email': email, 'consultation': self.get_consultation()}, 'tb_consultation-view_email')
def mail_in_queue(self, filename): """ Check if a specific message is still in queue """ COMMON_KEYS = ['sender', 'recipients', 'subject', 'content', 'date'] check_values = {} archived_email = get_bulk_email(self.getSite(), filename, where_to_read=path_in_site( self.get_consultation())) for key in COMMON_KEYS: check_values[key] = archived_email[key] return _mail_in_queue(self.getSite(), filename, check_values)
def mail_in_queue(self, filename): """ Check if a specific message is still in queue """ COMMON_KEYS = ['sender', 'recipients', 'subject', 'content', 'date'] check_values = {} archived_email = get_bulk_email(self.getSite(), filename, where_to_read=path_in_site( self.get_consultation())) for key in COMMON_KEYS: check_values[key] = archived_email[key] return _mail_in_queue(self.getSite(), filename, check_values)
def mail_in_queue(self, filename): """ Check if a specific message is still in queue """ # removed recipients from COMMON_KEYS because of signup # recipients splitting COMMON_KEYS = ['sender', 'subject', 'content', 'date'] check_values = {} archived_email = get_bulk_email( self.getSite(), filename, where_to_read=path_in_site(self.getMeeting())) for key in COMMON_KEYS: check_values[key] = archived_email[key] return _mail_in_queue(self.getSite(), filename, check_values)
def view_email(self, filename, REQUEST=None, RESPONSE=None): """ Display a specfic saved email """ email = get_bulk_email(self.getSite(), filename, where_to_read=path_in_site( self.get_consultation())) return self.getFormsTool().getContent( { 'here': self, 'email': email, 'consultation': self.get_consultation() }, 'tb_consultation-view_email')
def admin_view_webex_email(self, filename, REQUEST=None, RESPONSE=None): """ Display a specfic saved webex request email """ if REQUEST and REQUEST.method == 'POST': meeting_info = json.loads(REQUEST.form['webex']) # get the initial requester of the webex meeting requester_auth_user = str(meeting_info['auth_user']) del meeting_info['auth_user'] # automatically add meeting using info from email # and some default data extra_args = { 'geo_location.address': 'Kongens Nytorv 6, 1050 Copenhagen K, Denmark', 'geo_location.lat': u'55.681365', 'geo_location.lon': u'12.586484', 'geo_type': u'symbol326', 'sortorder': u'100', 'releasedate': datetime.utcnow().strftime("%d/%m/%Y"), 'max_participants': '25', 'restrict_items': True, 'submitted': 1 } args = dict(meeting_info, **extra_args) try: ob_id = addNyMeeting(self.getSite().library, contributor=requester_auth_user, **args) except Exception: self.setSessionErrorsTrans("Error in adding a new meeting.") REQUEST.RESPONSE.redirect('%s/library' % self.absolute_url()) else: self.setSessionInfoTrans('Successfully added meeting') REQUEST.RESPONSE.redirect('%s/library/%s' % (self.absolute_url(), ob_id)) return email = get_bulk_email(self, filename, where_to_read='sent-webex') return self.getFormsTool().getContent({'here': self, 'email': email}, 'site_admin_webex_mail_view')
class GroupwareSite(NySite): """ """ implements(IGWSite) meta_type = METATYPE_GROUPWARESITE # icon = 'misc_/GroupwareSite/site.gif' manage_options = (NySite.manage_options) product_paths = NySite.product_paths + [Globals.package_home(globals())] security = ClassSecurityInfo() display_subobject_count = "on" portal_is_archived = False content_versioning_enabled = False def __init__(self, *args, **kwargs): """ """ NySite.__dict__['__init__'](self, *args, **kwargs) self.display_subobject_count = "on" self.set_bundle(groupware_bundle) self.portal_is_archived = False # The semantics of this flag is # that you can't request membership of the IG any longer. security.declarePrivate('loadDefaultData') def loadDefaultData(self): """ """ # set default 'Naaya' configuration NySite.__dict__['createPortalTools'](self) NySite.__dict__['loadDefaultData'](self) # remove Naaya default content layout_tool = self.getLayoutTool() naaya_skins = [ skin.getId() for skin in layout_tool.objectValues('Naaya Skin') ] logos = [image.getId() for image in layout_tool.objectValues('Image')] layout_tool.manage_delObjects(naaya_skins + logos) self.getPortletsTool().manage_delObjects( ['menunav_links', 'topnav_links']) self.manage_delObjects('info') # load groupware skel self.loadSkeleton(Globals.package_home(globals())) if rdf_calendar_available: manage_addRDFCalendar(self, id="portal_rdfcalendar", title="Events calendar") rdfcalendar_ob = self._getOb('portal_rdfcalendar') # adding range index to catalog class Empty(object): pass extra = Empty() # Extra has to be an object.. see DateRangeIndex extra.since_field = 'start_date' extra.until_field = 'end_date' self.getCatalogTool().addIndex('resource_interval', 'DateRangeIndex', extra=extra) # adding local_events Script (Python) manage_addPythonScript(rdfcalendar_ob, 'local_events') local_events_ob = rdfcalendar_ob._getOb('local_events') local_events_ob._params = 'year=None, month=None, day=None' local_events_ob.write( open( os.path.dirname(__file__) + '/skel/others/local_events.py', 'r').read()) self.getPortletsTool().assign_portlet('library', 'right', 'portlet_latestuploads_rdf', True) # set default main topics self.getPropertiesTool().manageMainTopics(['about', 'library']) # add meta on brains for group local roles self.getCatalogTool().addColumn('ny_ldap_group_roles') def get_user_access(self, user=None): """ Returns one of 'admin', 'member', 'viewer' or 'restricted' for logged in user, if not explicitly specified. """ if user is None: user = self.REQUEST.get('AUTHENTICATED_USER', None) if user is not None: if user.has_permission(PERMISSION_PUBLISH_OBJECTS, self): return 'admin' elif user.allowed(self, ['Contributor']): return 'member' elif user.has_permission(view, self): return 'viewer' return 'restricted' def get_gw_root(self): return self.aq_parent.absolute_url() def get_gw_site_root(self): return self.aq_parent @property def portal_is_restricted(self): view_perm = getattr(self, '_View_Permission', []) return isinstance(view_perm, tuple) and ('Anonymous' not in view_perm) security.declarePrivate('toggle_portal_restricted') def toggle_portal_restricted(self, status): permission = getattr(self, '_View_Permission', []) if status: new_permission = [x for x in permission if x != 'Anonymous'] if 'Contributor' not in new_permission: new_permission.append('Contributor') self._View_Permission = tuple(new_permission) else: new_permission = list(permission) new_permission.append('Anonymous') self._View_Permission = new_permission security.declareProtected(PERMISSION_PUBLISH_OBJECTS, 'admin_properties') def admin_properties(self, REQUEST=None, **kwargs): """ """ if REQUEST is not None: kwargs.update(REQUEST.form) self.portal_is_archived = kwargs.get('portal_is_archived', False) self.toggle_portal_restricted(kwargs.get('portal_is_restricted', None)) super(GroupwareSite, self).admin_properties(REQUEST=REQUEST, **kwargs) security.declareProtected(PERMISSION_PUBLISH_OBJECTS, 'admin_email') def admin_email(self, mail_server_name='', mail_server_port='', administrator_email='', mail_address_from='', notify_on_errors_email='', REQUEST=None): """ """ self.getEmailTool().manageSettings(mail_server_name, mail_server_port, administrator_email, mail_address_from, notify_on_errors_email) if REQUEST: self.setSessionInfoTrans(MESSAGE_SAVEDCHANGES, date=self.utGetTodayDate()) REQUEST.RESPONSE.redirect('%s/admin_email_html' % self.absolute_url()) security.declareProtected(PERMISSION_REQUEST_WEBEX, 'admin_saved_webex_emails') def admin_saved_webex_emails(self, REQUEST=None, RESPONSE=None): """ Display all saved saved emails """ emails = get_bulk_emails(self, where_to_read='sent-webex') return self.getFormsTool().getContent({ 'here': self, 'emails': emails }, 'site_admin_webex_mail_listing') security.declareProtected(PERMISSION_REQUEST_WEBEX, 'admin_view_webex_email') def admin_view_webex_email(self, filename, REQUEST=None, RESPONSE=None): """ Display a specfic saved webex request email """ if REQUEST and REQUEST.method == 'POST': meeting_info = json.loads(REQUEST.form['webex']) # get the initial requester of the webex meeting requester_auth_user = str(meeting_info['auth_user']) del meeting_info['auth_user'] # automatically add meeting using info from email # and some default data extra_args = { 'geo_location.address': 'Kongens Nytorv 6, 1050 Copenhagen K, Denmark', 'geo_location.lat': u'55.681365', 'geo_location.lon': u'12.586484', 'geo_type': u'symbol326', 'sortorder': u'100', 'releasedate': datetime.utcnow().strftime("%d/%m/%Y"), 'max_participants': '25', 'restrict_items': True, 'submitted': 1 } args = dict(meeting_info, **extra_args) try: ob_id = addNyMeeting(self.getSite().library, contributor=requester_auth_user, **args) except Exception, e: self.setSessionErrorsTrans("Error in adding a new meeting.") REQUEST.RESPONSE.redirect('%s/library' % self.absolute_url()) else: self.setSessionInfoTrans('Successfully added meeting') REQUEST.RESPONSE.redirect('%s/library/%s' % (self.absolute_url(), ob_id)) return email = get_bulk_email(self, filename, where_to_read='sent-webex') return self.getFormsTool().getContent({ 'here': self, 'email': email }, 'site_admin_webex_mail_view')