Exemple #1
0
 def test_folders_created_with_default_subobjects(self):
     for i in range(2):
         folder = getattr(self.portal.info, 'subfolder' + str(i))
         fmt = FolderMetaTypes(folder)
         self.assertFalse(fmt.has_custom_value)
         self.assertEqual(set(fmt.get_values()),
                          set(self.portal.adt_meta_types))
Exemple #2
0
    def _update(self, portal):
        portal_properties = portal.getPropertiesTool()
        global_subobjects = set(portal.adt_meta_types)
        all_nyfolders = ofs_walk(portal, [INyFolder], [IFolder])
        patched = 0
        customized = 0

        for nyfolder in all_nyfolders:
            if global_subobjects != set(nyfolder.folder_meta_types):
                # subobjects are different, they were prev. modified
                # keep the folder_meta_types list as it is
                customized += 1
            else:
                # same with global, mark it with `Uses default` (None)
                fmt = FolderMetaTypes(nyfolder)
                fmt.set_values(None)
                patched += 1

        self.log.info(("%d folders now use default subobjects setting, "
                       "%d folders have subobject customizations") %
                      (patched, customized))
        if not add_admin_entry(self, portal,
                               ("""<li tal:condition="canPublish"><a """
                                """tal:attributes="href string:${site_url}/"""
                                """admin_folder_subobjects_html" title"""
                                """="Portal comments" i18n:attributes="title" """
                                """i18n:translate="">Folder subobjects</a></li>"""),
                               '${site_url}/admin_maintopics_html"'):
            self.log.error("MANUAL action: Insert link html in admin portlet")
            return False
        else:
            return True
        return True
 def test_setting_default_subobjects(self):
     self.portal_properties.manageSubobjects(['ZopeType0', 'ZopeType1'],
                                             ['NyType0', 'NyType1'])
     fmt = FolderMetaTypes(self.portal.info)
     self.assertEqual(set(fmt.get_values()),
                      set(['ZopeType0', 'ZopeType1', 'NyType0', 'NyType1']))
     self.assertEqual(set(fmt.get_values()), set(self.portal.adt_meta_types))
 def test_setting_default_subobjects(self):
     self.portal_properties.manageSubobjects(['ZopeType0', 'ZopeType1'],
                                             ['NyType0', 'NyType1'])
     fmt = FolderMetaTypes(self.portal.info)
     self.assertEqual(set(fmt.get_values()),
                      set(['ZopeType0', 'ZopeType1', 'NyType0', 'NyType1']))
     self.assertEqual(set(fmt.get_values()),
                      set(self.portal.adt_meta_types))
Exemple #5
0
def create_month_folder(self, contributor, schema_raw_data):
    #Creating archive folder
    news_date = self.utConvertStringToDateTimeObj(
        schema_raw_data.get('news_date', None))
    news_date_year = str(news_date.year())
    news_date_month = news_date.mm()

    year_folder = self._getOb(news_date_year, None)
    if year_folder is None:
        year_folder = self._getOb(
            addNyFolder(self,
                        news_date_year,
                        contributor=contributor,
                        title="News for %s" % news_date_year))

    month_folder = year_folder._getOb(news_date_month, None)
    if month_folder is None:
        month_folder = year_folder._getOb(
            addNyFolder(year_folder,
                        news_date_month,
                        contributor=contributor,
                        title="News for %s/%s" %
                        (news_date_year, news_date_month)))
    FolderMetaTypes(month_folder).add(config['meta_type'])
    return month_folder
 def setUp(self):
     super(BlobFileTest, self).setUp()
     # "Naaya Blob File" is not installed by default
     self.portal.manage_uninstall_pluggableitem("Naaya File")
     self.portal.manage_install_pluggableitem("Naaya Blob File")
     FolderMetaTypes(self.portal.info).add("Naaya Blob File")
     transaction.commit()
 def export_this_tag_custom(self):
     meta_types = FolderMetaTypes(self).get_values()
     return 'custom_index="%s" maintainer_email="%s" folder_meta_types="%s" themes="%s" criteria_date="%s"' % \
         (self.utXmlEncode(self.compute_custom_index_value()),
             self.utXmlEncode(self.maintainer_email),
             self.utXmlEncode(','.join(meta_types)),
             self.utXmlEncode(self.themes),
             self.utXmlEncode(self.criteria_date))
    def _update(self, portal):
        to_add = "Naaya Forum"

        filter_out_folders = ["news", "events", "stories"]
        filter_out_folders_cap = [f.capitalize() for f in filter_out_folders]
        filter_out_folders.extend(filter_out_folders_cap)
        self.log.debug("Filtering out folders: %s", filter_out_folders)

        prop_tool = portal.getPropertiesTool()
        ny_subobjects = [item for item in prop_tool.getProductsMetaTypes() if item in prop_tool.adt_meta_types]
        subobjects = [item for item in prop_tool.get_meta_types(1) if item in prop_tool.adt_meta_types]
        self.log.debug("Found ny_subobjects: %s and subobjects: %s" % (ny_subobjects, subobjects))

        if to_add not in ny_subobjects:
            self.log.debug("Adding %s to ny_subobjects" % to_add)
            ny_subobjects.append(to_add)
            prop_tool.manageSubobjects(subobjects, ny_subobjects)

        ny_folders = [folder for folder in portal.getCatalogedObjectsCheckView(meta_type="Naaya Folder")]
        filtered_folders = []
        for folder in ny_folders:
            f_splits = folder.absolute_url(1).split("/")
            for fs in f_splits:
                if fs in filter_out_folders:
                    break
            else:
                filtered_folders.append(folder)
        ny_folders = filtered_folders

        i, j = 0, 0
        for folder in ny_folders:
            meta_types = FolderMetaTypes(folder)
            f_mt = meta_types.get_values()
            if to_add not in f_mt:
                meta_types.add(to_add)
                i += 1
                self.log.debug("Updated folder %s" % folder.absolute_url(1))
            else:
                j += 1
                self.log.debug("Skipped folder %s" % folder.absolute_url(1))

        self.log.debug("Updated %s folders | Skipped %s folders | Total %s folders" % (i, j, i + j))

        return True
    def _update(self, portal):
        to_add = "Naaya Forum"

        filter_out_folders = ['news', 'events', 'stories']
        filter_out_folders_cap = [f.capitalize() for f in filter_out_folders]
        filter_out_folders.extend(filter_out_folders_cap)
        self.log.debug('Filtering out folders: %s', filter_out_folders)

        prop_tool = portal.getPropertiesTool()
        ny_subobjects = [item for item in prop_tool.getProductsMetaTypes() if item in prop_tool.adt_meta_types]
        subobjects = [item for item in prop_tool.get_meta_types(1) if item in prop_tool.adt_meta_types]
        self.log.debug('Found ny_subobjects: %s and subobjects: %s' % (ny_subobjects, subobjects))

        if to_add not in ny_subobjects:
            self.log.debug('Adding %s to ny_subobjects' % to_add)
            ny_subobjects.append(to_add)
            prop_tool.manageSubobjects(subobjects, ny_subobjects)

        ny_folders = [folder for folder in portal.getCatalogedObjectsCheckView(meta_type="Naaya Folder")]
        filtered_folders = []
        for folder in ny_folders:
            f_splits = folder.absolute_url(1).split('/')
            for fs in f_splits:
                if fs in filter_out_folders:
                    break
            else:
                filtered_folders.append(folder)
        ny_folders = filtered_folders

        i, j = 0, 0
        for folder in ny_folders:
            meta_types = FolderMetaTypes(folder)
            f_mt = meta_types.get_values()
            if to_add not in f_mt:
                meta_types.add(to_add)
                i+=1
                self.log.debug('Updated folder %s' % folder.absolute_url(1))
            else:
                j+=1
                self.log.debug('Skipped folder %s' % folder.absolute_url(1))

        self.log.debug('Updated %s folders | Skipped %s folders | Total %s folders' % (i, j, i+j))

        return True
    def update_subobjects(self, portal):
        """ Update allowed subobject in Naaya Folders if Naaya Extended File
        is present in this list

        Required arguments:
        portal -- Naaya Site instance

        """
        # Subobjects
        meta_types = portal.adt_meta_types[:]
        changed = False
        if 'Naaya Extended File' in meta_types:
            meta_types.remove('Naaya Extended File')
            changed = True
        if 'Naaya Blob File' not in meta_types:
            meta_types.append('Naaya Blob File')
            changed = True
        if changed:
            self.log.debug('Updating portal %s subobjects = %s',
                           portal.absolute_url(1), meta_types)
            portal.portal_properties.manageSubobjects(subobjects=meta_types)

        brains = portal.portal_catalog(meta_type='Naaya Folder')
        for brain in brains:
            doc = brain.getObject()
            if not doc:
                continue

            self.log.debug("Replacing object %s", doc.absolute_url())
            folder_meta_types = FolderMetaTypes(doc)
            meta_types = folder_meta_types.get_values()
            changed = False
            if 'Naaya Extended File' in meta_types:
                meta_types.remove('Naaya Extended File')
                changed = True
            if 'Naaya Blob File' not in meta_types:
                meta_types.append('Naaya Blob File')
                changed = True
            if changed:
                self.log.debug('Updating folder %s subobjects = %s',
                               doc.absolute_url(1), meta_types)
                folder_meta_types.set_values(meta_types)
    def update_subobjects(self, portal):
        """ Update allowed subobject in Naaya Folders if Naaya Extended File
        is present in this list

        Required arguments:
        portal -- Naaya Site instance

        """
        # Subobjects
        meta_types = portal.adt_meta_types[:]
        changed = False
        if 'Naaya Extended File' in meta_types:
            meta_types.remove('Naaya Extended File')
            changed = True
        if 'Naaya Blob File' not in meta_types:
            meta_types.append('Naaya Blob File')
            changed = True
        if changed:
            self.log.debug('Updating portal %s subobjects = %s',
                           portal.absolute_url(1), meta_types)
            portal.portal_properties.manageSubobjects(subobjects=meta_types)

        brains = portal.portal_catalog(meta_type='Naaya Folder')
        for brain in brains:
            doc = brain.getObject()
            if not doc:
                continue

            self.log.debug("Replacing object %s", doc.absolute_url())
            folder_meta_types = FolderMetaTypes(doc)
            meta_types = folder_meta_types.get_values()
            changed = False
            if 'Naaya Extended File' in meta_types:
                meta_types.remove('Naaya Extended File')
                changed = True
            if 'Naaya Blob File' not in meta_types:
                meta_types.append('Naaya Blob File')
                changed = True
            if changed:
                self.log.debug('Updating folder %s subobjects = %s',
                               doc.absolute_url(1), meta_types)
                folder_meta_types.set_values(meta_types)
Exemple #12
0
    def update_subobjects(self, portal):
        # Subobjects
        meta_types = portal.adt_meta_types[:]
        if 'Naaya File' in meta_types:
            meta_types.remove('Naaya File')
            meta_types.append('Naaya Blob File')
            self.log.debug('Updating portal %s subobjects = %s', portal.absolute_url(1), meta_types)
            portal.portal_properties.manageSubobjects(subobjects=meta_types)

        brains = portal.portal_catalog(meta_type='Naaya Folder')
        for brain in brains:
            doc = brain.getObject()
            if not doc:
                continue

            folder_meta_types = FolderMetaTypes(doc)
            meta_types = folder_meta_types.get_values()
            if 'Naaya File' in meta_types:
                meta_types.remove('Naaya File')
                meta_types.append('Naaya Blob File')
                self.log.debug('Updating folder %s subobjects = %s', doc.absolute_url(1), meta_types)
                doc.manageSubobjects(subobjects=meta_types)
    def _update(self, portal):
        portal_properties = portal.getPropertiesTool()
        global_subobjects = set(portal.adt_meta_types)
        all_nyfolders = ofs_walk(portal, [INyFolder], [IFolder])
        patched = 0
        customized = 0

        for nyfolder in all_nyfolders:
            if global_subobjects != set(nyfolder.folder_meta_types):
                # subobjects are different, they were prev. modified
                # keep the folder_meta_types list as it is
                customized += 1
            else:
                # same with global, mark it with `Uses default` (None)
                fmt = FolderMetaTypes(nyfolder)
                fmt.set_values(None)
                patched += 1

        self.log.info(
            ("%d folders now use default subobjects setting, " "%d folders have subobject customizations")
            % (patched, customized)
        )
        if not add_admin_entry(
            self,
            portal,
            (
                """<li tal:condition="canPublish"><a """
                """tal:attributes="href string:${site_url}/"""
                """admin_folder_subobjects_html" title"""
                """="Portal comments" i18n:attributes="title" """
                """i18n:translate="">Folder subobjects</a></li>"""
            ),
            '${site_url}/admin_maintopics_html"',
        ):
            self.log.error("MANUAL action: Insert link html in admin portlet")
            return False
        else:
            return True
        return True
Exemple #14
0
    def saveProperties(self, REQUEST=None, **kwargs):
        """ """
        if not self.checkPermissionEditObject():
            raise EXCEPTION_NOTAUTHORIZED, EXCEPTION_NOTAUTHORIZED_MSG

        if self.hasVersion():
            obj = self.version
            if self.checkout_user != self.REQUEST.AUTHENTICATED_USER.getUserName(
            ):
                raise EXCEPTION_NOTAUTHORIZED, EXCEPTION_NOTAUTHORIZED_MSG
        else:
            obj = self

        if REQUEST is not None:
            schema_raw_data = dict(REQUEST.form)
        else:
            schema_raw_data = kwargs
        _lang = schema_raw_data.pop('_lang', schema_raw_data.pop('lang', None))

        info_type = schema_raw_data.pop('info_type', None)
        self.info_type = info_type
        FolderMetaTypes(self).set_values(self.get_meta_types())

        self.set_categories()

        form_errors = self.process_submitted_form(schema_raw_data, _lang)

        if not form_errors:
            if self.discussion: self.open_for_comments()
            else: self.close_for_comments()
            self._p_changed = 1
            self.recatalogNyObject(self)
            #log date
            contributor = self.REQUEST.AUTHENTICATED_USER.getUserName()
            auth_tool = self.getAuthenticationTool()
            auth_tool.changeLastPost(contributor)
            notify(NyContentObjectEditEvent(self, contributor))
            if REQUEST:
                self.setSessionInfoTrans(MESSAGE_SAVEDCHANGES,
                                         date=self.utGetTodayDate())
                REQUEST.RESPONSE.redirect('%s/edit_html?lang=%s' %
                                          (self.absolute_url(), _lang))
        else:
            if REQUEST is not None:
                self._prepare_error_response(REQUEST, form_errors,
                                             schema_raw_data)
                REQUEST.RESPONSE.redirect('%s/edit_html?lang=%s' %
                                          (self.absolute_url(), _lang))
            else:
                raise ValueError(
                    form_errors.popitem()[1])  # pick a random error
    def update_subobjects(self, portal):
        # Subobjects
        meta_types = portal.adt_meta_types[:]
        if 'Naaya File' in meta_types:
            meta_types.remove('Naaya File')
            meta_types.append('Naaya Blob File')
            self.log.debug('Updating portal %s subobjects = %s',
                           portal.absolute_url(1), meta_types)
            portal.portal_properties.manageSubobjects(subobjects=meta_types)

        brains = portal.portal_catalog(meta_type='Naaya Folder')
        for brain in brains:
            doc = brain.getObject()
            if not doc:
                continue

            folder_meta_types = FolderMetaTypes(doc)
            meta_types = folder_meta_types.get_values()
            if 'Naaya File' in meta_types:
                meta_types.remove('Naaya File')
                meta_types.append('Naaya Blob File')
                self.log.debug('Updating folder %s subobjects = %s',
                               doc.absolute_url(1), meta_types)
                doc.manageSubobjects(subobjects=meta_types)
Exemple #16
0
 def setUp(self):
     super(TestFolderMetaTypesAdapter, self).setUp()
     addNyFolder(self.portal.info,
                 'subfolder0',
                 contributor='contributor',
                 submission=1)
     addNyFolder(self.portal.info,
                 'subfolder1',
                 contributor='contributor',
                 submission=1)
     self.wrapped = [
         FolderMetaTypes(x) for x in [
             self.portal.info, self.portal.info.subfolder0,
             self.portal.info.subfolder1
         ]
     ]
     self.defaults = self.portal.adt_meta_types
Exemple #17
0
 def afterSetUp(self):
     self.portal.manage_install_pluggableitem('Naaya GeoPoint')
     from Products.Naaya.NyFolder import addNyFolder
     from naaya.content.geopoint.geopoint_item import addNyGeoPoint
     addNyFolder(self.portal,
                 'myfolder',
                 contributor='contributor',
                 submitted=1)
     FolderMetaTypes(self.portal.myfolder).add('Naaya GeoPoint')
     addNyGeoPoint(self.portal.myfolder,
                   id='mygeopoint',
                   title='My geopoint',
                   submitted=1,
                   contributor='contributor',
                   geo_location=Geo('13', '13'))
     import transaction
     transaction.commit()
    def process_submissions(self):
        """Returns info meta_types and their constructors views that can be
        added inside a folder.

        [(FUNC_NAME, LABEL), (...), ...]

        """

        folder_meta_types = FolderMetaTypes(self).get_values()

        r = []
        ra = r.append

        # check for adding folders
        if METATYPE_FOLDER in folder_meta_types:
            if self.checkPermission(PERMISSION_ADD_FOLDER):
                ra(('folder_add_html', LABEL_NYFOLDER))

        # check for adding dynamic registered content types
        for dynamic_key, dynamic_value in self._dynamic_content_types.items():
            if dynamic_key in folder_meta_types:
                if self.checkPermission(dynamic_value[2]):
                    ra(dynamic_value[:2])

        # check pluggable content
        pc = self.get_pluggable_content()
        schema_tool = self.getSchemaTool()

        for k in self.get_pluggable_installed_meta_types():
            if k not in folder_meta_types:
                continue
            if k not in pc:
                continue
            if not self.checkPermission(pc[k]['permission']):
                continue

            schema = schema_tool.getSchemaForMetatype(k)
            if schema is not None:
                meta_label = schema.title_or_id()
            else:
                meta_label = pc[k]['label']
            ra((pc[k]['add_form'], meta_label))

        return r
Exemple #19
0
 def test_subobjects_customization(self):
     # customize one subfolder
     self.portal.info.subfolder1.manageSubobjects(subobjects=[],
                                            ny_subobjects=['Naaya Document'])
     # change global setting
     portal_properties = self.portal.getPropertiesTool()
     portal_properties.manageSubobjects([], ['Naaya Calendar'])
     fmt0 = FolderMetaTypes(self.portal.info.subfolder0)
     fmt1 = FolderMetaTypes(self.portal.info.subfolder1)
     # check
     self.assertEqual(set(fmt0.get_values()), set(['Naaya Calendar']))
     self.assertFalse(fmt0.has_custom_value)
     self.assertEqual(set(fmt1.get_values()), set(['Naaya Document']))
     self.assertTrue(fmt1.has_custom_value)
Exemple #20
0
def addNyInfoFolder(self, id='', REQUEST=None, contributor=None, **kwargs):
    """
    Create an infofolder type of object.
    """
    #process parameters
    if REQUEST is not None:
        schema_raw_data = dict(REQUEST.form)
    else:
        schema_raw_data = kwargs
    _lang = schema_raw_data.pop('_lang', schema_raw_data.pop('lang', None))
    _folder_meta_types = schema_raw_data.pop('folder_meta_types', '')

    id = make_id(self,
                 id=id,
                 title=schema_raw_data.get('title', ''),
                 prefix='infofolder')
    if contributor is None:
        contributor = self.REQUEST.AUTHENTICATED_USER.getUserName()

    ob = _create_NyInfoFolder_object(self, id, contributor)

    ob.info_type = 'enterprises'

    ob.set_categories()
    _releasedate = DateTime()
    form_errors = ob.process_submitted_form(schema_raw_data,
                                            _lang,
                                            _override_releasedate=_releasedate)

    if form_errors:
        if REQUEST is None:
            raise ValueError(form_errors.popitem()[1])  # pick a random error
        else:
            import transaction
            transaction.abort(
            )  # because we already called _crete_NyZzz_object
            ob._prepare_error_response(REQUEST, form_errors, schema_raw_data)
            return REQUEST.RESPONSE.redirect('%s/infofolder_add_html' %
                                             self.absolute_url())
            return

    site = self.getSite()
    #extra settings
    ob_meta_types = FolderMetaTypes(ob)
    parent_meta_types = FolderMetaTypes(self)
    if _folder_meta_types == '':
        #inherit allowd meta types from the parent
        if self.meta_type == site.meta_type:
            ob_meta_types.set_values(site.adt_meta_types)
        else:
            if not parent_meta_types.has_custom_value:
                # if parent uses defaults, so should `ob`
                ob_meta_types.set_values(None)
            else:
                ob_meta_types.set_values(parent_meta_types.get_values())
    else:
        ob_meta_types.set_values(self.utConvertToList(_folder_meta_types))

    if self.glCheckPermissionPublishObjects():
        approved, approved_by = 1, self.REQUEST.AUTHENTICATED_USER.getUserName(
        )
    else:
        approved, approved_by = 0, None
    ob.approveThis(approved, approved_by)
    ob.submitThis()

    #Process extra fields (categories, extra_properties)

    if ob.discussion: ob.open_for_comments()
    self.recatalogNyObject(ob)
    notify(NyContentObjectAddEvent(ob, contributor, schema_raw_data))
    #log post date
    auth_tool = self.getAuthenticationTool()
    auth_tool.changeLastPost(contributor)
    #redirect if case
    if REQUEST is not None:
        #l_referer = REQUEST['HTTP_REFERER'].split('/')[-1]
        #if l_referer == 'infofolder_manage_add' or l_referer.find('infofolder_manage_add') != -1:
        #return self.manage_main(self, REQUEST, update_menu=1)
        #elif l_referer == 'infofolder_add_html':
        #self.setSession('referer', self.absolute_url())
        #return ob.object_submitted_message(REQUEST)
        #REQUEST.RESPONSE.redirect('%s/messages_html' % self.absolute_url())
        REQUEST.RESPONSE.redirect('%s/%s/edit_html' %
                                  (self.absolute_url(), id))

    return ob.getId()
def addNyInfoFolder(self, id='', REQUEST=None, contributor=None, **kwargs):
    """
    Create an infofolder type of object.
    """
    #process parameters
    if REQUEST is not None:
        schema_raw_data = dict(REQUEST.form)
    else:
        schema_raw_data = kwargs
    _lang = schema_raw_data.pop('_lang', schema_raw_data.pop('lang', None))
    _folder_meta_types = schema_raw_data.pop('folder_meta_types', '')

    id = make_id(self, id=id, title=schema_raw_data.get('title', ''), prefix='infofolder')
    if contributor is None: contributor = self.REQUEST.AUTHENTICATED_USER.getUserName()

    ob = _create_NyInfoFolder_object(self, id, contributor)

    ob.info_type = 'enterprises'

    ob.set_categories()
    _releasedate = DateTime()
    form_errors = ob.process_submitted_form(schema_raw_data, _lang, _override_releasedate=_releasedate)

    if form_errors:
        if REQUEST is None:
            raise ValueError(form_errors.popitem()[1]) # pick a random error
        else:
            import transaction; transaction.abort() # because we already called _crete_NyZzz_object
            ob._prepare_error_response(REQUEST, form_errors, schema_raw_data)
            return REQUEST.RESPONSE.redirect('%s/infofolder_add_html' % self.absolute_url())
            return

    site = self.getSite()
    #extra settings
    ob_meta_types = FolderMetaTypes(ob)
    parent_meta_types = FolderMetaTypes(self)
    if _folder_meta_types == '':
        #inherit allowd meta types from the parent
        if self.meta_type == site.meta_type:
            ob_meta_types.set_values(site.adt_meta_types)
        else:
            if not parent_meta_types.has_custom_value:
                # if parent uses defaults, so should `ob`
                ob_meta_types.set_values(None)
            else:
                ob_meta_types.set_values(parent_meta_types.get_values())
    else:
        ob_meta_types.set_values(self.utConvertToList(_folder_meta_types))

    if self.glCheckPermissionPublishObjects():
        approved, approved_by = 1, self.REQUEST.AUTHENTICATED_USER.getUserName()
    else:
        approved, approved_by = 0, None
    ob.approveThis(approved, approved_by)
    ob.submitThis()

    #Process extra fields (categories, extra_properties)

    if ob.discussion: ob.open_for_comments()
    self.recatalogNyObject(ob)
    notify(NyContentObjectAddEvent(ob, contributor, schema_raw_data))
    #log post date
    auth_tool = self.getAuthenticationTool()
    auth_tool.changeLastPost(contributor)
    #redirect if case
    if REQUEST is not None:
        #l_referer = REQUEST['HTTP_REFERER'].split('/')[-1]
        #if l_referer == 'infofolder_manage_add' or l_referer.find('infofolder_manage_add') != -1:
            #return self.manage_main(self, REQUEST, update_menu=1)
        #elif l_referer == 'infofolder_add_html':
            #self.setSession('referer', self.absolute_url())
            #return ob.object_submitted_message(REQUEST)
            #REQUEST.RESPONSE.redirect('%s/messages_html' % self.absolute_url())
        REQUEST.RESPONSE.redirect('%s/%s/edit_html' % (self.absolute_url(), id))

    return ob.getId()
    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.manage_delObjects('info')

        #load site skeleton - configuration
        self.loadSkeleton(ENVIROWINDOWS_PRODUCT_PATH)

        #custom indexes
        try:    self.getCatalogTool().manage_addIndex('resource_area', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass
        try:    self.getCatalogTool().manage_addIndex('resource_focus', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass
        try:    self.getCatalogTool().manage_addIndex('resource_area_exp', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass
        try:    self.getCatalogTool().manage_addIndex('resource_focus_exp', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass
        try:    self.getCatalogTool().manage_addIndex('resource_country', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'splitter_single_chars': 1})
        except: pass

        #default RDF Calendar settings
        manage_addRDFCalendar(self, id=ID_RDFCALENDAR, title=TITLE_RDFCALENDAR, week_day_len=1)
        rdfcalendar_ob = self._getOb(ID_RDFCALENDAR)
        #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())

        #Adding custom SchemaTool properties
        schema_tool = self.getSchemaTool()
        naaya_folder_schema = schema_tool.getSchemaForMetatype(METATYPE_FOLDER)
        widget_args = dict(
            label='Allow users enrolment here?',
            data_type='bool',
            widget_type='Checkbox',
            localized=True,
        )
        naaya_folder_schema.addWidget('show_contributor_request_role',
                                      **widget_args)

        naaya_consultation_schema = schema_tool.getSchemaForMetatype(
                                        'Naaya Consultation')
        if naaya_consultation_schema:
            naaya_consultation_schema.addWidget('show_contributor_request_role',
                                      **widget_args)

        naaya_simple_consultation_schema = schema_tool.getSchemaForMetatype(
                                        'Naaya Simple Consultation')
        if naaya_simple_consultation_schema:
            naaya_simple_consultation_schema.addWidget(
                'show_contributor_request_role', **widget_args)

        #add survey tool
        try:
            from Products.NaayaSurvey.SurveyTool import manage_addSurveyTool
            manage_addSurveyTool(self)
        except:
            pass

        self._install_link_checker()

        addNyFolder(self, id='events', title='Events', publicinterface=1)
        folder_meta_types = FolderMetaTypes(self._getOb('events'))
        folder_meta_types.set_values(['Naaya Event'])
        event_folder_custom_index = (
            "<metal:block use-macro=\"python:here.getFormsTool()."
            "getForm('event_folder_index').macros['page']\" />")
        self['events']['index'].pt_edit(text=event_folder_custom_index,
                                        content_type='')