def initialize():
    try:
        from raven.contrib.zope import ZopeSentryHandler
    except ImportError:
        return
    else:
        sentry_dsn = get_zope_env('SENTRY_DSN')
        if sentry_dsn:
            sentry_handler = ZopeSentryHandler(sentry_dsn)
            publish_error_log.addHandler(sentry_handler)
def get_log_dir(site):
    """
    Each site has its own folder in SITES_LOG_PATH_VAR
    Factory for returning that folder path.

    """
    abs_path = get_zope_env(SITES_LOG_PATH_VAR)
    if abs_path:
        abs_path = os.path.join(abs_path, get_site_slug(site))
        if not os.path.exists(abs_path):
            try:
                os.makedirs(abs_path)
            except Exception, e:
                return None
        return abs_path
Exemple #3
0
def get_log_dir(site):
    """
    Each site has its own folder in SITES_LOG_PATH_VAR
    Factory for returning that folder path.

    """
    abs_path = get_zope_env(SITES_LOG_PATH_VAR)
    if abs_path:
        abs_path = os.path.join(abs_path, get_site_slug(site))
        if not os.path.exists(abs_path):
            try:
                os.makedirs(abs_path)
            except Exception, e:
                return None
        return abs_path
Exemple #4
0
def get_log_dir(site):
    """
    Each site has its own folder in SITES_LOG_PATH_VAR
    Factory for returning that folder path.

    """
    abs_path = get_zope_env(SITES_LOG_PATH_VAR)
    if not abs_path:
        log.warning("Could not find SITES_LOG_PATH_VAR env variable")
        return None

    abs_path = os.path.join(abs_path, get_site_slug(site))
    if not os.path.exists(abs_path):
        try:
            os.makedirs(abs_path)
        except Exception:
            return None

    return abs_path
Exemple #5
0
    def _update(self, portal):
        meta_type = 'Naaya Meeting'
        NETWORK_NAME = get_zope_env('NETWORK_NAME', '')
        if not portal.is_pluggable_item_installed(meta_type):
            self.log.debug('Meeting not installed')
            return True

        self.log.debug('Changing meeting schema')
        schema_tool = portal.getSchemaTool()
        schema = schema_tool.getSchemaForMetatype(NyMeeting.meta_type)
        crt_widgets = schema.objectIds()
        if widgetid_from_propname('is_eionet_meeting') not in crt_widgets:
            property_schema = get_pluggable_content()[NyMeeting.meta_type][
                'default_schema']['is_eionet_meeting']
            if NETWORK_NAME.lower() != 'eionet':
                property_schema['visible'] = False
            schema.addWidget('is_eionet_meeting', **property_schema)
            self.log.debug(('Naaya Meeting schema changes: '
                            'added the "Eionet Meeting" widget'))
        else:
            self.log.debug(
                'Meeting schema already contained is_eionet_meeting-property')

        return True
Exemple #6
0
    def _update(self, portal):
        meta_type = 'Naaya Meeting'
        NETWORK_NAME = get_zope_env('NETWORK_NAME', '')
        if not portal.is_pluggable_item_installed(meta_type):
            self.log.debug('Meeting not installed')
            return True

        self.log.debug('Changing meeting schema')
        schema_tool = portal.getSchemaTool()
        schema = schema_tool.getSchemaForMetatype(NyMeeting.meta_type)
        crt_widgets = schema.objectIds()
        if widgetid_from_propname('is_eionet_meeting') not in crt_widgets:
            property_schema = get_pluggable_content()[
                NyMeeting.meta_type]['default_schema']['is_eionet_meeting']
            if NETWORK_NAME.lower() != 'eionet':
                property_schema['visible'] = False
            schema.addWidget('is_eionet_meeting', **property_schema)
            self.log.debug(('Naaya Meeting schema changes: '
                            'added the "Eionet Meeting" widget'))
        else:
            self.log.debug(
                'Meeting schema already contained is_eionet_meeting-property')

        return True
Exemple #7
0
    def _update(self, portal):
        # Update meeting types in map symbols
        if not portal.is_pluggable_item_installed('Naaya Meeting'):
            self.log.debug('Meeting not installed')
            return True

        NETWORK_NAME = get_zope_env('NETWORK_NAME', '')
        eionet = NETWORK_NAME.lower() == 'eionet'
        portal_map = portal.getGeoMapTool()
        if portal_map is not None:
            if eionet:
                new_map_symbols = [('conference.png', 'Conference', 10),
                                   ('nrc_meeting.png', 'NRC meeting', 20),
                                   ('nrc_webinar.png', 'NRC webinar', 30),
                                   ('nfp_meeting.png', 'NFP meeting', 40),
                                   ('nfp_webinar.png', 'NFP webinar', 50),
                                   ('workshop.png', 'Workshop', 60)]
            else:
                new_map_symbols = [('conference.png', 'Conference', 10),
                                   ('workshop.png', 'Workshop', 60)]
            for i in range(len(new_map_symbols)):
                new_map_symbols[i] = (os.path.join(os.path.dirname(__file__),
                                                   'www', 'map_symbols',
                                                   new_map_symbols[i][0]),
                                      new_map_symbols[i][1],
                                      new_map_symbols[i][2])

            map_symbols = portal_map.getSymbolsListOrdered()
            new_map_symbols_titles = [s[1] for s in new_map_symbols]
            new_map_symbols_titles.append('Meeting')
            symbols_to_delete = [sym.id for sym in map_symbols if sym.title in
                                 new_map_symbols_titles]
            symbol_titles = [portal_map.getSymbolTitle(symbol) for symbol in
                             symbols_to_delete]
            portal_map.adminDeleteSymbols(symbols_to_delete)
            self.log.debug('Deleted old symbols for %s' % symbol_titles)

            for filename, symbol_name, sortorder in new_map_symbols:
                file = open(filename, 'r')
                symbol = file.read()
                file.close()

                portal_map.adminAddSymbol(title=symbol_name, picture=symbol,
                                          sortorder=sortorder,
                                          id=filename.replace('.png', ''))
            symbol_titles = [new_symbol[1] for new_symbol in new_map_symbols]
            self.log.debug('Added symbols for %s' % symbol_titles)

        # set meeting type based on the former eionet_meeting flag
        meetings = portal.getCatalogedObjects(meta_type='Naaya Meeting')
        for meeting in meetings:
            if not getattr(meeting, 'added_nrc_meeting_type', None):
                is_eionet_meeting = getattr(meeting, 'is_eionet_meeting', None)
                if is_eionet_meeting:
                    meeting.geo_type = os.path.join(
                        os.path.dirname(__file__), 'www', 'map_symbols',
                        'nrc_meeting')
                    self.log.debug('Meeting %s changed to NRC meeting' %
                                   meeting.absolute_url())
                else:
                    meeting.geo_type = os.path.join(
                        os.path.dirname(__file__), 'www', 'map_symbols',
                        'conference')
                    self.log.debug('Meeting %s changed to conference' %
                                   meeting.absolute_url())
                meeting.added_nrc_meeting_type = True
                if is_eionet_meeting is not None:
                    delattr(meeting, 'is_eionet_meeting')

        schema_tool = portal.getSchemaTool()
        schema = schema_tool.getSchemaForMetatype('Naaya Meeting')
        crt_widgets = schema.objectIds()
        widget_id = widgetid_from_propname('is_eionet_meeting')
        if widget_id in crt_widgets:
            schema.manage_delObjects(widget_id)
            self.log.debug(('Naaya Meeting schema changes: '
                            'removed the "Eionet Meeting" widget'))
        else:
            self.log.debug(
                'is_eionet_meeting-property not present in Meeting schema')

        return True
from permissions import (PERMISSION_ADD_MEETING,
                         PERMISSION_PARTICIPATE_IN_MEETING,
                         PERMISSION_ADMIN_MEETING)
from participants import Participants
from email import EmailSender, configureEmailNotifications
from reports import MeetingReports
from subscriptions import SignupUsersTool

from lxml import etree
from lxml.builder import ElementMaker

from countries import country_from_country_code
from eionet_survey.eionet_survey import EIONET_SURVEYS, EIONET_MEETINGS

# module constants
NETWORK_NAME = get_zope_env('NETWORK_NAME', '')
DEFAULT_SCHEMA = {
    'interval':             dict(sortorder=140, widget_type='Interval',
                                 label='Meeting Interval',
                                 data_type='interval', required=True),
    'location':             dict(sortorder=143, widget_type='String',
                                 label='Organization/Building/Room'),
    'allow_register':       dict(sortorder=147, widget_type='Checkbox',
                                 label=('Allow people to register to '
                                        'participate'), data_type='bool'),
    'auto_register':        dict(sortorder=148, widget_type='Checkbox',
                                 label=('Automatically approve participants '
                                        'when they register'),
                                 data_type='bool'),
    'restrict_items':       dict(sortorder=149, widget_type='Checkbox',
                                 label=('Restrict user access to the contents '
from datetime import datetime

from zope.interface import Interface, implements
from zope.event import notify
from OFS.SimpleItem import SimpleItem
from Products.Five.browser import BrowserView

from Products.NaayaCore.managers.utils import genObjectId
from naaya.groupware.groupware_site import manage_addGroupwareSite
from Products.NaayaCore.EmailTool.EmailPageTemplate import EmailPageTemplateFile
from naaya.core.zope2util import get_zope_env


NETWORK_NAME = get_zope_env('NETWORK_NAME', 'Eionet')
approved_mail = EmailPageTemplateFile('emailpt/approved_application.zpt', globals())
rejected_mail = EmailPageTemplateFile('emailpt/rejected_application.zpt', globals())

def make_unicode(s):
    if isinstance(s, unicode):
        return s
    try:
        return s.decode('utf-8')
    except:
        return s.decode('latin-1')

class IGWApplication(Interface):
    """Interface for the GWApplication class
    """

    def approve(self):
        """Approve the application.
Exemple #10
0
from zope.publisher.browser import BrowserPage
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from profileoverview.profile import ProfileClient
from constants import GROUPWARE_META_ID

from naaya.core.backport import json
from naaya.core.zope2util import get_zope_env

local_users_zpt = PageTemplateFile('zpt/local_users.zpt', globals())
index_html_zpt = PageTemplateFile('zpt/index.zpt', globals())
eionet_forum_index_html_zpt = PageTemplateFile('zpt/eionet_forum_index.zpt',
                                               globals())
archives_index_html_zpt = PageTemplateFile('zpt/archives_index.zpt', globals())

eionet_url = get_zope_env('EIONET_LDAP_EXPLORER', '')
NETWORK_NAME = get_zope_env('NETWORK_NAME', 'Eionet')


def get_user_id(request):
    return request.AUTHENTICATED_USER.getId()


def grouped_igs(context):
    """
    Return list of Groupware site-s grouped by user access for logged in user,
    if any

    """
    portals = context.objectValues('Groupware site')
    sorted_igs = {}
    for portal in portals:
from sqlalchemy import Column, Integer, String, create_engine, exc
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

from naaya.core.zope2util import get_zope_env

Base = declarative_base()

DB_USER = get_zope_env('CONGODB_USER')
DB_PASSWORD = get_zope_env('CONGODB_PASSWORD')
DB_HOST = get_zope_env('CONGODB_HOST')
DB_NAME = get_zope_env('CONGODB_NAME')
DBTEST_NAME = get_zope_env('CONGODBTEST_NAME')


class Document(Base):
    __tablename__ = 'documents'

    docid = Column(Integer, primary_key=True)
    authorid = Column(Integer)
    imageid = Column(Integer)
    subject = Column(String)
    parkid = Column(Integer)
    topic = Column(String)
    ref_geo = Column(String)
    no_collection = Column(String)
    sujet_bref = Column(String)
    esp_nom_com = Column(String)
    esp_nom_lat = Column(String)
    biomeid = Column(Integer)
    vegetationid = Column(Integer)
Exemple #12
0
from datetime import datetime

from zope.interface import Interface, implements
from zope.event import notify
from OFS.SimpleItem import SimpleItem
from Products.Five.browser import BrowserView

from Products.NaayaCore.managers.utils import genObjectId
from naaya.groupware.groupware_site import manage_addGroupwareSite
from Products.NaayaCore.EmailTool.EmailPageTemplate import EmailPageTemplateFile
from naaya.core.zope2util import get_zope_env

NETWORK_NAME = get_zope_env('NETWORK_NAME', 'Eionet')
approved_mail = EmailPageTemplateFile('emailpt/approved_application.zpt',
                                      globals())
rejected_mail = EmailPageTemplateFile('emailpt/rejected_application.zpt',
                                      globals())


def make_unicode(s):
    if isinstance(s, unicode):
        return s
    try:
        return s.decode('utf-8')
    except:
        return s.decode('latin-1')


class IGWApplication(Interface):
    """Interface for the GWApplication class
    """
Exemple #13
0
    def _update(self, portal):
        # Update meeting types in map symbols
        if not portal.is_pluggable_item_installed('Naaya Meeting'):
            self.log.debug('Meeting not installed')
            return True

        NETWORK_NAME = get_zope_env('NETWORK_NAME', '')
        eionet = NETWORK_NAME.lower() == 'eionet'
        portal_map = portal.getGeoMapTool()
        if portal_map is not None:
            if eionet:
                new_map_symbols = [('conference.png', 'Conference', 10),
                                   ('nrc_meeting.png', 'NRC meeting', 20),
                                   ('nrc_webinar.png', 'NRC webinar', 30),
                                   ('nfp_meeting.png', 'NFP meeting', 40),
                                   ('nfp_webinar.png', 'NFP webinar', 50),
                                   ('workshop.png', 'Workshop', 60)]
            else:
                new_map_symbols = [('conference.png', 'Conference', 10),
                                   ('workshop.png', 'Workshop', 60)]
            for i in range(len(new_map_symbols)):
                new_map_symbols[i] = (os.path.join(os.path.dirname(__file__),
                                                   'www', 'map_symbols',
                                                   new_map_symbols[i][0]),
                                      new_map_symbols[i][1],
                                      new_map_symbols[i][2])

            map_symbols = portal_map.getSymbolsListOrdered()
            new_map_symbols_titles = [s[1] for s in new_map_symbols]
            new_map_symbols_titles.append('Meeting')
            symbols_to_delete = [
                sym.id for sym in map_symbols
                if sym.title in new_map_symbols_titles
            ]
            symbol_titles = [
                portal_map.getSymbolTitle(symbol)
                for symbol in symbols_to_delete
            ]
            portal_map.adminDeleteSymbols(symbols_to_delete)
            self.log.debug('Deleted old symbols for %s' % symbol_titles)

            for filename, symbol_name, sortorder in new_map_symbols:
                file = open(filename, 'r')
                symbol = file.read()
                file.close()

                portal_map.adminAddSymbol(title=symbol_name,
                                          picture=symbol,
                                          sortorder=sortorder,
                                          id=filename.replace('.png', ''))
            symbol_titles = [new_symbol[1] for new_symbol in new_map_symbols]
            self.log.debug('Added symbols for %s' % symbol_titles)

        # set meeting type based on the former eionet_meeting flag
        meetings = portal.getCatalogedObjects(meta_type='Naaya Meeting')
        for meeting in meetings:
            if not getattr(meeting, 'added_nrc_meeting_type', None):
                is_eionet_meeting = getattr(meeting, 'is_eionet_meeting', None)
                if is_eionet_meeting:
                    meeting.geo_type = os.path.join(os.path.dirname(__file__),
                                                    'www', 'map_symbols',
                                                    'nrc_meeting')
                    self.log.debug('Meeting %s changed to NRC meeting' %
                                   meeting.absolute_url())
                else:
                    meeting.geo_type = os.path.join(os.path.dirname(__file__),
                                                    'www', 'map_symbols',
                                                    'conference')
                    self.log.debug('Meeting %s changed to conference' %
                                   meeting.absolute_url())
                meeting.added_nrc_meeting_type = True
                if is_eionet_meeting is not None:
                    delattr(meeting, 'is_eionet_meeting')

        schema_tool = portal.getSchemaTool()
        schema = schema_tool.getSchemaForMetatype('Naaya Meeting')
        crt_widgets = schema.objectIds()
        widget_id = widgetid_from_propname('is_eionet_meeting')
        if widget_id in crt_widgets:
            schema.manage_delObjects(widget_id)
            self.log.debug(('Naaya Meeting schema changes: '
                            'removed the "Eionet Meeting" widget'))
        else:
            self.log.debug(
                'is_eionet_meeting-property not present in Meeting schema')

        return True
Exemple #14
0
from zope.publisher.browser import BrowserPage
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from profileoverview.profile import ProfileClient
from constants import GROUPWARE_META_ID

from naaya.core.backport import json
from naaya.core.zope2util import get_zope_env

local_users_zpt = PageTemplateFile('zpt/local_users.zpt', globals())
index_html_zpt = PageTemplateFile('zpt/index.zpt', globals())
eionet_forum_index_html_zpt = PageTemplateFile('zpt/eionet_forum_index.zpt',
                                               globals())
archives_index_html_zpt = PageTemplateFile('zpt/archives_index.zpt', globals())

eionet_url = get_zope_env('EIONET_LDAP_EXPLORER', '')
NETWORK_NAME = get_zope_env('NETWORK_NAME', 'Eionet')


def get_user_id(request):
    return request.AUTHENTICATED_USER.getId()


def grouped_igs(context):
    """
    Return list of Groupware site-s grouped by user access for logged in user,
    if any

    """
    portals = context.objectValues('Groupware site')
    sorted_igs = {}
    for portal in portals: