def test_periodic(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('contributor', 'fol1', 'instant', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a', approved=0,
                      contributor='admin')
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('weekly',
                                    datetime(2009, 7, 30),
                                    datetime(2009, 8, 5))

        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
             u'Maintainer notification for object: fol1',
             u'The item "fol1" has been created at http://nohost/portal/fol1 '
             u'by "".'),
            ('*****@*****.**', '*****@*****.**',
             u'Maintainer notification for object: fol2',
             u'The item "fol2" has been created at http://nohost/portal/fol2 '
             u'by "".')
            ]))
    def test_instant(self):
        """ Instant notifications for unapproved objects
        When an object is added it calls the
        ``NotificationTool.handle_object_add`` subscriber that sends the
        notifications to the folder maintainers and the notification subribers
        Since we do not call directly that subscriber no notifications will
        be sent. See the tests from ``test_noitifications_functional`` for the
        above case.

        """
        self.add_account_subscription('contributor', 'fol1', 'instant', 'en')

        addNyDocument(self.portal['fol1'],
                      id='doc_a',
                      approved=0,
                      contributor='admin')

        notif_tool = self.portal.getNotificationTool()
        notif_tool.notify_instant(self.portal['fol1']['doc_a'], 'somebody')

        # No notifications should be sent at this point
        self.assertEqual(
            set(self._fetch_test_notifications()),
            set([
                ('*****@*****.**', '*****@*****.**',
                 u'Maintainer notification for object: fol1',
                 u'The item "fol1" has been created at http://nohost/portal/fol1 '
                 u'by "".'),
                ('*****@*****.**', '*****@*****.**',
                 u'Maintainer notification for object: fol2',
                 u'The item "fol2" has been created at http://nohost/portal/fol2 '
                 u'by "".')
            ]))
    def test_periodic(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('contributor', 'fol1', 'instant', 'en')

        addNyDocument(self.portal['fol1'],
                      id='doc_a',
                      approved=0,
                      contributor='admin')
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('weekly', datetime(2009, 7, 30),
                                    datetime(2009, 8, 5))

        self.assertEqual(
            set(self._fetch_test_notifications()),
            set([
                ('*****@*****.**', '*****@*****.**',
                 u'Maintainer notification for object: fol1',
                 u'The item "fol1" has been created at http://nohost/portal/fol1 '
                 u'by "".'),
                ('*****@*****.**', '*****@*****.**',
                 u'Maintainer notification for object: fol2',
                 u'The item "fol2" has been created at http://nohost/portal/fol2 '
                 u'by "".')
            ]))
Example #4
0
    def test_notification_type_checking(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('user1', 'fol1', 'instant', 'en')
        self.add_account_subscription('user2', 'fol1', 'daily', 'en')
        self.add_account_subscription('user3', 'fol1', 'weekly', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a')
        addNyDocument(self.portal['fol1'], id='doc_b')
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 7, 16)),
            ('fol1/doc_b', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('daily',
            datetime(2009, 7, 30), datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'daily [fol1/doc_b] portal'),
        ]))

        notif_tool._send_newsletter('weekly',
            datetime(2009, 7, 30), datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'weekly [fol1/doc_b] portal'),
        ]))

        notif_tool._send_newsletter('monthly',
            datetime(2009, 7, 30), datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set())
Example #5
0
    def save_flash(self, results, p_type):
        """ """
        template = self._getOb(self.df_template)
        archive = self.getFlashArchive()
        #create mail document
        id = '%s_%s' % (self.lastflashdate, p_type)
        title = u'Flash to be sent on %s (%s version)' % (self.utShowDateTime(
            self.notif_date), p_type)
        doc_obj = archive._getOb(id, None)
        if doc_obj is None:
            addNyDocument(archive, id=id, title=title)
            doc_obj = archive._getOb(id, None)
            doc_obj.approveThis(0, None)
            doc_obj.submitThis()
        for k in results.keys():
            """
            overwrite the objectkeywords_{lang} on the instance (object)
            such that the recatalobObject function doesn't reindex these documents
            next line is worth 20 secs (performance when generating e-Flash notification message)
            """
            setattr(doc_obj, 'objectkeywords_%s' % k, '')

            style = template._getOb("%s_%s" % (p_type, k)).document_src()
            x = self.render_xml(results[k], style)
            doc_obj.saveProperties(title=title, body=x, lang=k)
Example #6
0
    def test_export_mixed_encodings(self):
        self.test_folder.zip_import.do_import(data=mac_zip)
        addNyDocument(self.test_folder, id='html_document')
        self.test_folder['html_document'].body = u'<p>Html document</p>'
        self.test_folder['html_document'].approved = 1
        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list),
                         ('Errors are raised: ', export_value))

        zip = ZipFile(export_value, 'r')

        expected_namelist = ['index.txt',
                             'zip_export_folder/picture-1.png',
                             'zip_export_folder/picture-2.png',
                             'zip_export_folder/html_document.html']

        self.assertEqual(sorted(zip.namelist()), sorted(expected_namelist))
        self.assertTrue('<p>Html document</p>' in \
                         zip.read('zip_export_folder/html_document.html'))

        picture1_data = IZipExportObject(self.test_folder['picture-1'])()[0]
        picture2_data = IZipExportObject(self.test_folder['picture-2'])()[0]

        self.assertEqual(zip.read('zip_export_folder/picture-1.png'),
                         picture1_data)
        self.assertEqual(zip.read('zip_export_folder/picture-2.png'),
                         picture2_data)
    def test_restricted_instant(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('reviewer', 'fol1', 'instant', 'en')
        self.add_account_subscription('user2', 'fol1', 'instant', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a', contributor='admin')
        self.portal.fol1.doc_a.approved = True
        addNyDocument(self.portal['fol1'], id='doc_b', contributor='admin')
        self.portal.fol1.doc_b.approved = True
        self.portal['fol1']['doc_a']._View_Permission = ('Reviewer',)
        self.portal['fol1']['doc_b']._View_Permission = ('Contributor',)

        notif_tool.notify_instant(self.portal['fol1']['doc_a'], 'somebody')
        notif_tool.notify_instant(self.portal['fol1']['doc_b'], 'somebody')
        notifications = self._fetch_test_notifications()
        self.assertEqual(set(notifications), set([
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol1',
                u'The item "fol1" has been created at http://nohost/portal/fol1 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol2',
                u'The item "fol2" has been created at http://nohost/portal/fol2 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Instant notification for object: doc_a',
                u'The item "doc_a" has been created at http://nohost/portal/fol1/doc_a by "".\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html'),
            ('*****@*****.**', '*****@*****.**',
                u'Instant notification for object: doc_b',
                u'The item "doc_b" has been created at http://nohost/portal/fol1/doc_b by "".\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html')
        ]))
Example #8
0
    def test_export_mixed_encodings(self):
        self.test_folder.zip_import.do_import(data=mac_zip)
        addNyDocument(self.test_folder, id='html_document')
        self.test_folder['html_document'].body = u'<p>Html document</p>'
        self.test_folder['html_document'].approved = 1
        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list),
                         ('Errors are raised: ', export_value))

        zip = ZipFile(export_value, 'r')

        expected_namelist = [
            'index.txt',
            'zip_export_folder/Picture 1.png',  # TODO
            'zip_export_folder/Picture 2.png',
            'zip_export_folder/html_document.html'
        ]

        self.assertEqual(sorted(zip.namelist()), sorted(expected_namelist))
        self.assertTrue('<p>Html document</p>' in \
                         zip.read('zip_export_folder/html_document.html'))

        picture1_data = IZipExportObject(self.test_folder['picture-1']).data
        picture2_data = IZipExportObject(self.test_folder['picture-2']).data

        self.assertEqual(zip.read('zip_export_folder/Picture 1.png'),
                         picture1_data)
        self.assertEqual(zip.read('zip_export_folder/Picture 2.png'),
                         picture2_data)
    def test_restricted_periodic(self):

        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('reviewer', 'fol1', 'weekly', 'en')
        self.add_account_subscription('user2', 'fol1', 'weekly', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a', contributor='admin')
        addNyDocument(self.portal['fol1'], id='doc_b', contributor='admin')
        self.portal['fol1']['doc_a']._View_Permission = ('Reviewer',)
        self.portal['fol1']['doc_b']._View_Permission = ('Contributor',)

        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 8, 3)),
            ('fol1/doc_b', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('weekly',
            datetime(2009, 7, 30), datetime(2009, 8, 5))

        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol1',
                u'The item "fol1" has been created at http://nohost/portal/fol1 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol2',
                u'The item "fol2" has been created at http://nohost/portal/fol2 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Changed items - weekly digest', u'Folowing items were modified/added in the "Naaya Test Site" portal.\n\n: doc_a (http://nohost/portal/fol1/doc_a)\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html'),
            ('*****@*****.**', '*****@*****.**',
                u'Changed items - weekly digest',
                u'Folowing items were modified/added in the "Naaya Test Site" portal.\n\n: doc_b (http://nohost/portal/fol1/doc_b)\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html')
        ]))
    def test_instant(self):
        """ Instant notifications for unapproved objects
        When an object is added it calls the
        ``NotificationTool.handle_object_add`` subscriber that sends the
        notifications to the folder maintainers and the notification subribers
        Since we do not call directly that subscriber no notifications will
        be sent. See the tests from ``test_noitifications_functional`` for the
        above case.

        """
        self.add_account_subscription('contributor', 'fol1', 'instant', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a', approved=0,
                      contributor='admin')

        notif_tool = self.portal.getNotificationTool()
        notif_tool.notify_instant(self.portal['fol1']['doc_a'], 'somebody')

        #No notifications should be sent at this point
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol1',
                u'The item "fol1" has been created at http://nohost/portal/fol1 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol2',
                u'The item "fol2" has been created at http://nohost/portal/fol2 by "".')
            ]))
    def test_export_mixed_encodings(self):
        self.test_folder.zip_import.do_import(data=mac_zip)
        addNyDocument(self.test_folder, id="html_document")
        self.test_folder["html_document"].body = u"<p>Html document</p>"
        self.test_folder["html_document"].approved = 1
        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list), ("Errors are raised: ", export_value))

        zip = ZipFile(export_value, "r")

        expected_namelist = [
            "index.txt",
            "zip_export_folder/Picture 1.png",  # TODO
            "zip_export_folder/Picture 2.png",
            "zip_export_folder/html_document.html",
        ]

        self.assertEqual(sorted(zip.namelist()), sorted(expected_namelist))
        self.assertTrue("<p>Html document</p>" in zip.read("zip_export_folder/html_document.html"))

        picture1_data = IZipExportObject(self.test_folder["picture-1"]).data
        picture2_data = IZipExportObject(self.test_folder["picture-2"]).data

        self.assertEqual(zip.read("zip_export_folder/Picture 1.png"), picture1_data)
        self.assertEqual(zip.read("zip_export_folder/Picture 2.png"), picture2_data)
    def test_instant_notifications(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('user1', 'fol1', 'instant', 'en')
        self.add_account_subscription('user2', 'fol2', 'instant', 'en')
        self.add_account_subscription('user3', '', 'instant', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a')
        self.portal.fol1.doc_a.approved = True
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 8, 3)),
        ]
        notif_tool.notify_instant(self.portal['fol1']['doc_a'], 'somebody')
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol1',
                u'The item "fol1" has been created at http://nohost/portal/fol1 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol2',
                u'The item "fol2" has been created at http://nohost/portal/fol2 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Instant notification for object: doc_a',
                u'The item "doc_a" has been created at http://nohost/portal/fol1/doc_a by "".\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html'),
            ('*****@*****.**', '*****@*****.**',
                u'Instant notification for object: doc_a',
                u'The item "doc_a" has been created at http://nohost/portal/fol1/doc_a by "".\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html')
        ]))
    def test_restricted_periodic(self):

        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('reviewer', 'fol1', 'weekly', 'en')
        self.add_account_subscription('user2', 'fol1', 'weekly', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a', contributor='admin')
        addNyDocument(self.portal['fol1'], id='doc_b', contributor='admin')
        self.portal['fol1']['doc_a']._View_Permission = ('Reviewer',)
        self.portal['fol1']['doc_b']._View_Permission = ('Contributor',)

        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 8, 3)),
            ('fol1/doc_b', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('weekly',
            datetime(2009, 7, 30), datetime(2009, 8, 5))

        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'weekly [fol1/doc_a] Naaya Test Site'),
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'weekly [fol1/doc_b] Naaya Test Site'),
        ]))
 def afterSetUp(self):
     from naaya.content.document.document_item import addNyDocument
     addNyDocument(self.portal.info, id="document", title="Document",
                   contributor='contributor', submitted=1)
     from Products.Naaya.NyFolder import addNyFolder
     addNyFolder(self.portal, 'folder', contributor='contributor',
                 submitted=1)
     transaction.commit()
 def test_export_html_document(self):
     addNyDocument(self.test_folder, id="html_document")
     self.test_folder["html_document"].body = "<p>Html document</p>"
     self.test_folder["html_document"].approved = 1
     export_value = self.test_folder.zip_export.do_export()
     zip = ZipFile(export_value, "r")
     self.assertEqual(sorted(zip.namelist()), sorted(["index.txt", "zip_export_folder/html_document.html"]))
     self.assertTrue("<p>Html document</p>" in zip.read("zip_export_folder/html_document.html"))
 def test_export_anonymous(self):
     addNyDocument(self.test_folder, id="public_access")
     self.test_folder["public_access"].body = "<p>Some html</p>"
     self.test_folder["public_access"].approved = 1
     self.logout()
     export_value = self.test_folder.zip_export.do_export()
     self.assertFalse(isinstance(export_value, list), ("Errors are raised: ", export_value))
     zip = ZipFile(export_value, "r")
     self.assertEqual(sorted(zip.namelist()), sorted(["index.txt", "zip_export_folder/public_access.html"]))
     self.assertTrue("<p>Some html</p>" in zip.read("zip_export_folder/public_access.html"))
Example #17
0
 def test_export_html_document(self):
     addNyDocument(self.test_folder, id='html_document')
     self.test_folder['html_document'].body = '<p>Html document</p>'
     self.test_folder['html_document'].approved = 1
     export_value = self.test_folder.zip_export.do_export()
     zip = ZipFile(export_value, 'r')
     self.assertEqual(
         sorted(zip.namelist()),
         sorted(['index.txt', 'zip_export_folder/html_document.html']))
     self.assertTrue('<p>Html document</p>' in \
                     zip.read('zip_export_folder/html_document.html'))
Example #18
0
 def test_export_html_document(self):
     addNyDocument(self.test_folder, id='html_document')
     self.test_folder['html_document'].body = '<p>Html document</p>'
     self.test_folder['html_document'].approved = 1
     export_value = self.test_folder.zip_export.do_export()
     zip = ZipFile(export_value, 'r')
     self.assertEqual(sorted(zip.namelist()),
                      sorted(['index.txt',
                              'zip_export_folder/html_document.html']))
     self.assertTrue('<p>Html document</p>' in \
                     zip.read('zip_export_folder/html_document.html'))
Example #19
0
 def afterSetUp(self):
     addNyFolder(self.portal,
                 'myfolder',
                 contributor='contributor',
                 submitted=1)
     addNyDocument(self.portal.myfolder,
                   id='mydoc',
                   title='My document',
                   submitted=1,
                   contributor='contributor')
     transaction.commit()
Example #20
0
 def afterSetUp(self):
     self._notifications = []
     divert_notifications(True, save_to=self._notifications)
     self.notif = self.portal.portal_notification
     self._original_config = dict(self.notif.config)
     self.notif.config['enable_instant'] = True
     self.notif.config['enable_daily'] = True
     self.notif.config['enable_weekly'] = True
     self.notif.config['enable_monthly'] = True
     addNyFolder(self.portal, 'notifol', contributor='contributor', submitted=1)
     addNyDocument(self.portal.notifol, id='notidoc',
         title='Notifying document', submitted=1, contributor='contributor')
    def test_notification_type_checking(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('user1', 'fol1', 'instant', 'en')
        self.add_account_subscription('user2', 'fol1', 'daily', 'en')
        self.add_account_subscription('user3', 'fol1', 'weekly', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a')
        addNyDocument(self.portal['fol1'], id='doc_b')
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 7, 16)),
            ('fol1/doc_b', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('daily', datetime(2009, 7, 30),
                                    datetime(2009, 8, 5))
        self.assertEqual(
            set(self._fetch_test_notifications()),
            set([
                ('*****@*****.**', '*****@*****.**',
                 u'Maintainer notification for object: fol1',
                 u'The item "fol1" has been created at http://nohost/portal/fol1 '
                 u'by "".'),
                ('*****@*****.**', '*****@*****.**',
                 u'Maintainer notification for object: fol2',
                 u'The item "fol2" has been created at http://nohost/portal/fol2 '
                 u'by "".'),
                ('*****@*****.**', '*****@*****.**',
                 u'Changed items - daily digest',
                 u'Following items were modified/added in the "Naaya Test Site" '
                 u'portal.\n\n: doc_b (http://nohost/portal/fol1/doc_b)\n\n\n'
                 u'If you want to unsubscribe from these notifications follow the '
                 u'link below:\n\nhttp://nohost/portal/portal_notification/'
                 u'my_subscriptions_html')
            ]))

        notif_tool._send_newsletter('weekly', datetime(2009, 7, 30),
                                    datetime(2009, 8, 5))
        self.assertEqual(
            set(self._fetch_test_notifications()),
            set([(
                '*****@*****.**', '*****@*****.**',
                u'Changed items - weekly digest',
                u'Following items were modified/added in the "Naaya Test Site" '
                u'portal.\n\n: doc_b (http://nohost/portal/fol1/doc_b)\n\n\n'
                u'If you want to unsubscribe from these notifications follow the '
                u'link below:\n\nhttp://nohost/portal/portal_notification/'
                u'my_subscriptions_html')]))

        notif_tool._send_newsletter('monthly', datetime(2009, 7, 30),
                                    datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set())
    def test_notification_type_checking(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('user1', 'fol1', 'instant', 'en')
        self.add_account_subscription('user2', 'fol1', 'daily', 'en')
        self.add_account_subscription('user3', 'fol1', 'weekly', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a')
        addNyDocument(self.portal['fol1'], id='doc_b')
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 7, 16)),
            ('fol1/doc_b', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('daily',
                                    datetime(2009, 7, 30),
                                    datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
             u'Maintainer notification for object: fol1',
             u'The item "fol1" has been created at http://nohost/portal/fol1 '
             u'by "".'),
            ('*****@*****.**', '*****@*****.**',
             u'Maintainer notification for object: fol2',
             u'The item "fol2" has been created at http://nohost/portal/fol2 '
             u'by "".'),
            ('*****@*****.**', '*****@*****.**',
             u'Changed items - daily digest',
             u'Following items were modified/added in the "Naaya Test Site" '
             u'portal.\n\n: doc_b (http://nohost/portal/fol1/doc_b)\n\n\n'
             u'If you want to unsubscribe from these notifications follow the '
             u'link below:\n\nhttp://nohost/portal/portal_notification/'
             u'my_subscriptions_html')
        ]))

        notif_tool._send_newsletter('weekly',
                                    datetime(2009, 7, 30),
                                    datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
             u'Changed items - weekly digest',
             u'Following items were modified/added in the "Naaya Test Site" '
             u'portal.\n\n: doc_b (http://nohost/portal/fol1/doc_b)\n\n\n'
             u'If you want to unsubscribe from these notifications follow the '
             u'link below:\n\nhttp://nohost/portal/portal_notification/'
             u'my_subscriptions_html')
        ]))

        notif_tool._send_newsletter('monthly',
                                    datetime(2009, 7, 30),
                                    datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set())
Example #23
0
 def afterSetUp(self):
     self._notifications = []
     set_notif_testing_mode(True, save_to=self._notifications)
     self.notif = self.portal.portal_notification
     self._original_config = dict(self.notif.config)
     self.notif.config["enable_instant"] = True
     self.notif.config["enable_daily"] = True
     self.notif.config["enable_weekly"] = True
     self.notif.config["enable_monthly"] = True
     addNyFolder(self.portal, "notifol", contributor="contributor", submitted=1)
     addNyDocument(
         self.portal.notifol, id="notidoc", title="Notifying document", submitted=1, contributor="contributor"
     )
 def afterSetUp(self):
     from naaya.content.document.document_item import addNyDocument
     addNyDocument(self.portal.info,
                   id="document",
                   title="Document",
                   contributor='contributor',
                   submitted=1)
     from Products.Naaya.NyFolder import addNyFolder
     addNyFolder(self.portal,
                 'folder',
                 contributor='contributor',
                 submitted=1)
     transaction.commit()
Example #25
0
 def test_export_anonymous(self):
     addNyDocument(self.test_folder, id='public_access')
     self.test_folder['public_access'].body = '<p>Some html</p>'
     self.test_folder['public_access'].approved = 1
     self.logout()
     export_value = self.test_folder.zip_export.do_export()
     self.assertFalse(isinstance(export_value, list),
                      ('Errors are raised: ', export_value))
     zip = ZipFile(export_value, 'r')
     self.assertEqual(sorted(zip.namelist()),
                      sorted(['index.txt',
                              'zip_export_folder/public_access.html']))
     self.assertTrue('<p>Some html</p>' in \
                      zip.read('zip_export_folder/public_access.html'))
Example #26
0
 def test_export_anonymous(self):
     addNyDocument(self.test_folder, id='public_access')
     self.test_folder['public_access'].body = '<p>Some html</p>'
     self.test_folder['public_access'].approved = 1
     self.logout()
     export_value = self.test_folder.zip_export.do_export()
     self.assertFalse(isinstance(export_value, list),
                      ('Errors are raised: ', export_value))
     zip = ZipFile(export_value, 'r')
     self.assertEqual(
         sorted(zip.namelist()),
         sorted(['index.txt', 'zip_export_folder/public_access.html']))
     self.assertTrue('<p>Some html</p>' in \
                      zip.read('zip_export_folder/public_access.html'))
    def test_periodic(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('contributor', 'fol1', 'instant', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a', approved=0,
                      contributor='admin')
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('weekly',
            datetime(2009, 7, 30), datetime(2009, 8, 5))

        self.assertEqual(self._fetch_test_notifications(), [])
    def afterSetUp(self):
        self._notifications = []
        divert_notifications(True, save_to=self._notifications)
        addNyFolder(self.portal, 'notifol', contributor='contributor', submitted=1)
        addNyDocument(self.portal.notifol, id='notidoc',
            title='Notifying document', submitted=1, contributor='contributor')
        self.portal.notifol.notidoc.approved = True # Approve this document

        _notif = self.portal.getNotificationTool()
        self._original_config = dict(_notif.config)
        _notif.config['enable_instant'] = True
        _notif.config['enable_daily'] = True
        _notif.config['enable_weekly'] = True
        _notif.config['enable_monthly'] = True
        transaction.commit()
Example #29
0
def get_document_or_create(site, title):
    folder = site[FOLDER["id"]]

    try:
        doc = folder[slugify(title, removelist=[])]
    except KeyError:
        doc_id = addNyDocument(folder, title=title, submitted=1)
        doc = folder[doc_id]
    return doc
Example #30
0
    def test_instant_notifications(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('user1', 'fol1', 'instant', 'en')
        self.add_account_subscription('user2', 'fol2', 'instant', 'en')
        self.add_account_subscription('user3', '', 'instant', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a')
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 8, 3)),
        ]
        notif_tool.notify_instant(self.portal['fol1']['doc_a'], 'somebody')
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'instant [fol1/doc_a] portal'),
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'instant [fol1/doc_a] portal'),
        ]))
Example #31
0
    def test_export_mixed_access(self):
        addNyDocument(self.test_folder, id='public_document')
        addNyDocument(self.test_folder, id='restricted_document')
        self.test_folder['public_document'].body = '<p>Some html</p>'
        self.test_folder['public_document'].approved = 1
        self.test_folder['restricted_document'].body = '<p>Restricted html</p>'
        self.test_folder['restricted_document'].approved = 1

        #restrict access
        restricted_doc = self.test_folder['restricted_document']
        permission = getattr(restricted_doc, '_View_Permission', [])
        new_permission = [x for x in permission if x != 'Anonymous']
        if 'Contributor' not in new_permission:
            new_permission.append('Contributor')
        restricted_doc._View_Permission = tuple(new_permission)

        self.logout()

        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list),
                         ('Errors are raised: ', export_value))
        zip = ZipFile(export_value, 'r')
        self.assertEqual(
            sorted(zip.namelist()),
            sorted(['index.txt', 'zip_export_folder/public_document.html']))
        self.assertTrue('<p>Some html</p>' in \
                        zip.read('zip_export_folder/public_document.html'))

        self.login('contributor')

        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list),
                         ('Errors are raised: ', export_value))
        zip = ZipFile(export_value, 'r')
        self.assertEqual(
            sorted(zip.namelist()),
            sorted([
                'index.txt', 'zip_export_folder/public_document.html',
                'zip_export_folder/restricted_document.html'
            ]))
        self.assertTrue('<p>Some html</p>' in \
                         zip.read('zip_export_folder/public_document.html'))
        self.assertTrue('<p>Restricted html</p>' in \
                         zip.read('zip_export_folder/restricted_document.html'))
Example #32
0
 def test_main(self):
     """ Add, Find, Edit and Delete Naaya Documents """
     addNyDocument(self._portal().info, id='doc1', title='doc1', lang='en', submitted=1)
     addNyDocument(self._portal().info, id='doc1_fr', title='doc1_fr', lang='fr', submitted=1)
     
     meta = self._portal().getCatalogedObjectsCheckView(meta_type=['Naaya Document'])
     
     #Get added NyDocument
     for x in meta:
         if x.getLocalProperty('title', 'en') == 'doc1':
             meta = x
         if x.getLocalProperty('title', 'fr') == 'doc1_fr':
             meta_fr = x
     
     self.assertEqual(meta.getLocalProperty('title', 'en'), 'doc1')
     self.assertEqual(meta_fr.getLocalProperty('title', 'fr'), 'doc1_fr')
     
     #Change NyDocument title
     meta.process_submitted_form({'title': 'doc1_edited'}, _lang='en', _all_values=False)
     meta_fr.process_submitted_form({'title': 'doc1_fr_edited'}, _lang='fr', _all_values=False)
     
     self.assertEqual(meta.getLocalProperty('title', 'en'), 'doc1_edited')
     self.assertEqual(meta_fr.getLocalProperty('title', 'fr'), 'doc1_fr_edited')
     
     #delete NyDocument
     self._portal().info.manage_delObjects([meta.id])
     self._portal().info.manage_delObjects([meta_fr.id])
     
     meta = self._portal().getCatalogedObjectsCheckView(meta_type=['Naaya Document'])
     for x in meta:
         if x.id == 'doc1':
             meta = x
         else:
             meta = []
         
         if x.id == 'doc1_fr':
             meta_fr = x
         else:
             meta_fr = []
         
     self.assertEqual(meta, [])
     self.assertEqual(meta_fr, [])
Example #33
0
    def test_export_mixed_access(self):
        addNyDocument(self.test_folder, id='public_document')
        addNyDocument(self.test_folder, id='restricted_document')
        self.test_folder['public_document'].body = '<p>Some html</p>'
        self.test_folder['public_document'].approved = 1
        self.test_folder['restricted_document'].body = '<p>Restricted html</p>'
        self.test_folder['restricted_document'].approved = 1

        #restrict access
        restricted_doc = self.test_folder['restricted_document']
        permission = getattr(restricted_doc, '_View_Permission', [])
        new_permission = [x for x in permission if x != 'Anonymous']
        if 'Contributor' not in new_permission:
            new_permission.append('Contributor')
        restricted_doc._View_Permission = tuple(new_permission)

        self.logout()

        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list),
                         ('Errors are raised: ', export_value))
        zip = ZipFile(export_value, 'r')
        self.assertEqual(sorted(zip.namelist()),
                         sorted(['index.txt',
                                 'zip_export_folder/public_document.html']))
        self.assertTrue('<p>Some html</p>' in \
                        zip.read('zip_export_folder/public_document.html'))

        self.login('contributor')

        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list),
                         ('Errors are raised: ', export_value))
        zip = ZipFile(export_value, 'r')
        self.assertEqual(sorted(zip.namelist()),
                         sorted(['index.txt',
                                 'zip_export_folder/public_document.html',
                                 'zip_export_folder/restricted_document.html']))
        self.assertTrue('<p>Some html</p>' in \
                         zip.read('zip_export_folder/public_document.html'))
        self.assertTrue('<p>Restricted html</p>' in \
                         zip.read('zip_export_folder/restricted_document.html'))
Example #34
0
 def test_main(self):
     """ Add, Find, Edit and Delete Naaya Documents """
     addNyDocument(self._portal().info, id='doc1', title='doc1', lang='en', submitted=1)
     addNyDocument(self._portal().info, id='doc1_fr', title='doc1_fr', lang='fr', submitted=1)
     
     meta = self._portal().getCatalogedObjectsCheckView(meta_type=['Naaya Document'])
     
     #Get added NyDocument
     for x in meta:
         if x.getLocalProperty('title', 'en') == 'doc1':
             meta = x
         if x.getLocalProperty('title', 'fr') == 'doc1_fr':
             meta_fr = x
     
     self.assertEqual(meta.getLocalProperty('title', 'en'), 'doc1')
     self.assertEqual(meta_fr.getLocalProperty('title', 'fr'), 'doc1_fr')
     
     #Change NyDocument title
     meta.process_submitted_form({'title': 'doc1_edited'}, _lang='en', _all_values=False)
     meta_fr.process_submitted_form({'title': 'doc1_fr_edited'}, _lang='fr', _all_values=False)
     
     self.assertEqual(meta.getLocalProperty('title', 'en'), 'doc1_edited')
     self.assertEqual(meta_fr.getLocalProperty('title', 'fr'), 'doc1_fr_edited')
     
     #delete NyDocument
     self._portal().info.manage_delObjects([meta.id])
     self._portal().info.manage_delObjects([meta_fr.id])
     
     meta = self._portal().getCatalogedObjectsCheckView(meta_type=['Naaya Document'])
     for x in meta:
         if x.id == 'doc1':
             meta = x
         else:
             meta = []
         
         if x.id == 'doc1_fr':
             meta_fr = x
         else:
             meta_fr = []
         
     self.assertEqual(meta, [])
     self.assertEqual(meta_fr, [])
Example #35
0
    def test_restricted_instant(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('reviewer', 'fol1', 'instant', 'en')
        self.add_account_subscription('user2', 'fol1', 'instant', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a', contributor='admin')
        addNyDocument(self.portal['fol1'], id='doc_b', contributor='admin')
        self.portal['fol1']['doc_a']._View_Permission = ('Reviewer',)
        self.portal['fol1']['doc_b']._View_Permission = ('Contributor',)

        notif_tool.notify_instant(self.portal['fol1']['doc_a'], 'somebody')
        notif_tool.notify_instant(self.portal['fol1']['doc_b'], 'somebody')

        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
                'notifications', 'instant [fol1/doc_a] portal'),
            ('*****@*****.**', '*****@*****.**',
                'notifications', 'instant [fol1/doc_b] portal'),
        ]))
    def test_instant(self):
        """ Instant notifications for unapproved objects
        When an object is added it calls the
        ``NotificationTool.handle_object_add`` subscriber that sends the
        notifications to the folder maintainers and the notification subribers
        Since we do not call directly that subscriber no notifications will
        be sent. See the tests from ``test_noitifications_functional`` for the
        above case.

        """
        self.add_account_subscription('contributor', 'fol1', 'instant', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a', approved=0,
                      contributor='admin')

        notif_tool = self.portal.getNotificationTool()
        notif_tool.notify_instant(self.portal['fol1']['doc_a'], 'somebody')

        #No notifications should be sent at this point
        self.assertEqual(self._fetch_test_notifications(), [])
    def test_weekly_notification_interval(self):
        notif_tool = self.portal.getNotificationTool()

        self.add_account_subscription('user1', '', 'weekly', 'en')
        self.add_account_subscription('user2', '', 'weekly', 'en')

        addNyDocument(self.portal['fol1'], id='doc_a')
        addNyDocument(self.portal['fol1'], id='doc_b')
        self.object_timestamps = [
            ('fol1/doc_a', datetime(2009, 7, 16)),
            ('fol1/doc_b', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('weekly',
            datetime(2009, 7, 30), datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'weekly [fol1/doc_b] Naaya Test Site'),
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'weekly [fol1/doc_b] Naaya Test Site'),
        ]))
Example #38
0
    def test_weekly_notification_paths(self):
        notif_tool = self.portal.getNotificationTool()

        addNyFolder(self.portal['fol1'], 'g', contributor='admin')
        addNyFolder(self.portal['fol1'], 'h', contributor='admin')
        addNyDocument(self.portal['fol1']['g'], id='doc_a')
        addNyDocument(self.portal['fol1']['h'], id='doc_b')
        addNyDocument(self.portal['fol1'], id='doc_c', discussion=0)

        self.add_account_subscription('user1', 'fol1/g', 'weekly', 'en')
        self.add_account_subscription('user2', 'fol1/h', 'weekly', 'en')
        self.add_account_subscription('user3', 'fol1', 'weekly', 'en')

        self.object_timestamps = [
            ('fol1/g/doc_a', datetime(2009, 8, 3)),
            ('fol1/h/doc_b', datetime(2009, 8, 3)),
            ('fol1/doc_c', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('weekly',
            datetime(2009, 7, 30), datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
                'notifications', 'weekly [fol1/g/doc_a] portal'),
            ('*****@*****.**', '*****@*****.**',
                'notifications', 'weekly [fol1/h/doc_b] portal'),
            ('*****@*****.**', '*****@*****.**', 'notifications',
                'weekly [fol1/doc_c][fol1/g/doc_a][fol1/h/doc_b] portal'),
        ]))
    def afterSetUp(self):
        self._notifications = []
        divert_notifications(True, save_to=self._notifications)

        #Login with admin and set skip_notifications in administration
        self.browser_do_login('admin', '')
        self.browser.go('http://localhost/portal/portal_notification/admin_html')
        form = self.browser.get_form('skip_notifications')
        self.browser.clicked(form,
            self.browser.get_form_field(form, 'submit-button'))
        self.browser.submit()

        #create folders and other content in browser, so the skip_notification
        #flag will be respected (the REQUEST.SESSION is checked for it)
        self.browser.go('http://localhost/portal/folder_add_html')
        form = self.browser.get_form('frmAdd')
        self.browser.clicked(form,
            self.browser.get_form_field(form, 'title:utf8:ustring'))
        form['title:utf8:ustring'] = 'notifol'
        self.browser.submit()

        addNyDocument(self.portal.notifol, id='notidoc',
            title='Notifying document', submitted=1, contributor='contributor')
        self.portal.notifol.notidoc.approved = True # Approve this document

        _notif = self.portal.getNotificationTool()
        self._original_config = dict(_notif.config)
        _notif.config['enable_instant'] = True
        _notif.config['enable_daily'] = True
        _notif.config['enable_weekly'] = True
        _notif.config['enable_monthly'] = True
        transaction.commit()

        #Unset skip_notifications in administration
        self.browser.go('http://localhost/portal/portal_notification/admin_html')
        form = self.browser.get_form('skip_notifications')
        self.browser.clicked(form,
            self.browser.get_form_field(form, 'submit-button'))
        self.browser.submit()
        self.browser_do_logout()
    def test_export_mixed_access(self):
        addNyDocument(self.test_folder, id="public_document")
        addNyDocument(self.test_folder, id="restricted_document")
        self.test_folder["public_document"].body = "<p>Some html</p>"
        self.test_folder["public_document"].approved = 1
        self.test_folder["restricted_document"].body = "<p>Restricted html</p>"
        self.test_folder["restricted_document"].approved = 1

        # restrict access
        restricted_doc = self.test_folder["restricted_document"]
        permission = getattr(restricted_doc, "_View_Permission", [])
        new_permission = [x for x in permission if x != "Anonymous"]
        if "Contributor" not in new_permission:
            new_permission.append("Contributor")
        restricted_doc._View_Permission = tuple(new_permission)

        self.logout()

        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list), ("Errors are raised: ", export_value))
        zip = ZipFile(export_value, "r")
        self.assertEqual(sorted(zip.namelist()), sorted(["index.txt", "zip_export_folder/public_document.html"]))
        self.assertTrue("<p>Some html</p>" in zip.read("zip_export_folder/public_document.html"))

        self.login("contributor")

        export_value = self.test_folder.zip_export.do_export()
        self.assertFalse(isinstance(export_value, list), ("Errors are raised: ", export_value))
        zip = ZipFile(export_value, "r")
        self.assertEqual(
            sorted(zip.namelist()),
            sorted(
                ["index.txt", "zip_export_folder/public_document.html", "zip_export_folder/restricted_document.html"]
            ),
        )
        self.assertTrue("<p>Some html</p>" in zip.read("zip_export_folder/public_document.html"))
        self.assertTrue("<p>Restricted html</p>" in zip.read("zip_export_folder/restricted_document.html"))
Example #41
0
    def save_flash(self, results, p_type):
        """ """
        template = self._getOb(self.df_template)
        archive = self.getFlashArchive()
        #create mail document
        id = '%s_%s' % (self.lastflashdate, p_type)
        title = u'Flash to be sent on %s (%s version)' % (self.utShowDateTime(self.notif_date), p_type)
        doc_obj = archive._getOb(id, None)
        if doc_obj is None:
            addNyDocument(archive, id=id, title=title)
            doc_obj = archive._getOb(id, None)
            doc_obj.approveThis(0, None)
            doc_obj.submitThis()
        for k in results.keys():
            """
            overwrite the objectkeywords_{lang} on the instance (object)
            such that the recatalobObject function doesn't reindex these documents
            next line is worth 20 secs (performance when generating e-Flash notification message)
            """
            setattr(doc_obj, 'objectkeywords_%s' % k, '')

            style = template._getOb("%s_%s" % (p_type, k)).document_src()
            x = self.render_xml(results[k], style)
            doc_obj.saveProperties(title=title, body=x, lang=k)
    def test_weekly_notification_paths(self):
        notif_tool = self.portal.getNotificationTool()

        addNyFolder(self.portal['fol1'], 'g', contributor='admin')
        addNyFolder(self.portal['fol1'], 'h', contributor='admin')
        addNyDocument(self.portal['fol1']['g'], id='doc_a')
        addNyDocument(self.portal['fol1']['h'], id='doc_b')
        addNyDocument(self.portal['fol1'], id='doc_c', discussion=0)

        self.add_account_subscription('user1', 'fol1/g', 'weekly', 'en')
        self.add_account_subscription('user2', 'fol1/h', 'weekly', 'en')
        self.add_account_subscription('user3', 'fol1', 'weekly', 'en')

        self.object_timestamps = [
            ('fol1/g/doc_a', datetime(2009, 8, 3)),
            ('fol1/h/doc_b', datetime(2009, 8, 3)),
            ('fol1/doc_c', datetime(2009, 8, 3)),
        ]

        notif_tool._send_newsletter('weekly',
            datetime(2009, 7, 30), datetime(2009, 8, 5))
        self.assertEqual(set(self._fetch_test_notifications()), set([
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol1',
                u'The item "fol1" has been created at http://nohost/portal/fol1 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: fol2',
                u'The item "fol2" has been created at http://nohost/portal/fol2 by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: g',
                u'The item "g" has been created at http://nohost/portal/fol1/g by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Maintainer notification for object: h',
                u'The item "h" has been created at http://nohost/portal/fol1/h by "".'),
            ('*****@*****.**', '*****@*****.**',
                u'Changed items - weekly digest',
                u'Folowing items were modified/added in the "Naaya Test Site" portal.\n\n: doc_a (http://nohost/portal/fol1/g/doc_a)\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html'),
            ('*****@*****.**', '*****@*****.**',
                u'Changed items - weekly digest',
                u'Folowing items were modified/added in the "Naaya Test Site" portal.\n\n: doc_a (http://nohost/portal/fol1/g/doc_a)\n\n: doc_b (http://nohost/portal/fol1/h/doc_b)\n\n: doc_c (http://nohost/portal/fol1/doc_c)\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html'),
            ('*****@*****.**', '*****@*****.**',
                u'Changed items - weekly digest',
                u'Folowing items were modified/added in the "Naaya Test Site" portal.\n\n: doc_b (http://nohost/portal/fol1/h/doc_b)\n\n\nIf you want to unsubscribe from these notifications follow the link below:\n\nhttp://nohost/portal/portal_notification/my_subscriptions_html')
        ]))
Example #43
0
 def add_object(self, parent):
     ob = parent[addNyDocument(parent, title='My document', submitted=1)]
     ob.approveThis()
     return ob
Example #44
0
 def afterSetUp(self):
     from naaya.content.document.document_item import addNyDocument
     addNyDocument(self.portal.info, id='ver_doc', title='ver_doc', submitted=1)
     import transaction; transaction.commit()
Example #45
0
 def afterSetUp(self):
     from Products.Naaya.NyFolder import addNyFolder
     from naaya.content.document.document_item import addNyDocument
     addNyFolder(self.portal, 'myfolder', contributor='contributor', submitted=1)
     addNyDocument(self.portal.myfolder, id='mydoc', title='My document', submitted=1, contributor='contributor')
     import transaction; transaction.commit()
Example #46
0
 def afterSetUp(self):
     addNyFolder(self.portal, "myfolder", contributor="contributor", submitted=1)
     addNyDocument(self.portal.myfolder, id="mydoc", title="My document", submitted=1, contributor="contributor")
     transaction.commit()
Example #47
0
 def add_object(self, parent, **kwargs):
     from naaya.content.document.document_item import addNyDocument
     return addNyDocument(parent, **kwargs)