Beispiel #1
0
    def test_cancelling_protocol_unlock_meeting(self, browser):
        browser.login().open(self.meeting.get_url('protocol'))
        lock_infos = ILockable(
            MeetingWrapper.wrap(self.committee, self.meeting)).lock_info()
        self.assertEquals(1, len(lock_infos))

        browser.find('Close').click()
        self.assertEquals(
            [], ILockable(
                MeetingWrapper.wrap(self.committee, self.meeting)).lock_info())
Beispiel #2
0
    def _getOb(self, id_, default=_marker):
        """We extend `_getObj` in order to change the context for meeting
        objects to the `MeetingWrapper`. That allows us to register the
        meetings view as regular Browser view without any traversal hacks."""

        obj = super(Committee, self)._getOb(id_, default)
        if obj is not default:
            return obj

        if id_.startswith('meeting'):
            meeting_id = int(id_.split('-')[-1])
            meeting = Meeting.query.get(meeting_id)
            if meeting and meeting.committee == self.load_model():
                return MeetingWrapper.wrap(self, meeting)

        elif id_.startswith('period'):
            period_id = int(id_.split('-')[-1])
            period = Period.query.get(period_id)
            if period and period.committee == self.load_model():
                return PeriodWrapper.wrap(self, period)

        elif id_.startswith('membership'):
            membership_id = int(id_.split('-')[-1])
            membership = Membership.query.get(membership_id)
            if membership and membership.committee == self.load_model():
                return MembershipWrapper.wrap(self, membership)

        if default is _marker:
            raise KeyError(id_)
        return default
Beispiel #3
0
    def setUp(self):
        super(TestSQLLockable, self).setUp()
        self.session = create_session()
        self.container = create(Builder('committee_container'))
        self.committee = create(Builder('committee').within(self.container))
        self.meeting = create(Builder('meeting').having(
            committee=self.committee.load_model()))

        self.wrapper = MeetingWrapper.wrap(self.committee, self.meeting)
Beispiel #4
0
    def test_editing_a_protocol_locks_meeting(self, browser):
        browser.login().open(self.meeting.get_url('protocol'))

        browser.open(self.meeting.get_url('plone_lock_info/lock_info'))
        lock_infos = ILockable(
            MeetingWrapper.wrap(self.committee, self.meeting)).lock_info()

        self.assertEquals(1, len(lock_infos))
        lock = lock_infos[0]
        self.assertEquals('Meeting:1', lock.get('token'))
        self.assertEquals(TEST_USER_ID, lock.get('creator'))
    def test_editing_a_protocol_locks_meeting(self, browser):
        browser.login().open(self.meeting.get_url(view='protocol'))

        browser.open(self.meeting.get_url(view='plone_lock_info/lock_info'))
        lock_infos = ILockable(
            MeetingWrapper.wrap(self.committee, self.meeting)).lock_info()

        self.assertEquals(1, len(lock_infos))
        lock = lock_infos[0]
        self.assertEquals('Meeting:1', lock.get('token'))
        self.assertEquals(TEST_USER_ID, lock.get('creator'))
    def test_return_fullname_as_title(self):
        member = create(
            Builder('member').having(firstname=u'Hans', lastname=u'M\xfcller'))

        create(
            Builder('membership').having(committee=self.committee_model,
                                         member=member))

        vocabulary = get_committee_member_vocabulary(
            MeetingWrapper(self.committee, self.meeting))

        self.assertEqual(u'M\xfcller Hans', vocabulary._terms[0].title)
Beispiel #7
0
    def setUp(self):
        super(TestUnscheduledProposals, self).setUp()
        self.admin_unit.public_url = 'http://nohost/plone'

        self.repository_root, self.repository_folder = create(
            Builder('repository_tree'))
        self.dossier = create(
            Builder('dossier').within(self.repository_folder))
        self.meeting_dossier = create(
            Builder('meeting_dossier').within(self.repository_folder))
        container = create(Builder('committee_container'))
        self.committee = create(Builder('committee').within(container))
        self.meeting = create(Builder('meeting')
                              .having(committee=self.committee.load_model())
                              .link_with(self.meeting_dossier))

        self.meeting_wrapper = MeetingWrapper.wrap(self.committee, self.meeting)
    def setUp(self):
        super(TestUnscheduledProposals, self).setUp()
        self.admin_unit.public_url = 'http://nohost/plone'

        self.repository_root, self.repository_folder = create(
            Builder('repository_tree'))
        self.dossier = create(
            Builder('dossier').within(self.repository_folder))
        self.meeting_dossier = create(
            Builder('meeting_dossier').within(self.repository_folder))
        container = create(Builder('committee_container'))
        self.committee = create(Builder('committee').within(container))
        self.meeting = create(Builder('meeting')
                              .having(committee=self.committee.load_model())
                              .link_with(self.meeting_dossier))

        self.meeting_wrapper = MeetingWrapper.wrap(self.committee, self.meeting)
    def setUp(self):
        super(TestCommitteeMemberVocabulary, self).setUp()

        self.admin_unit.public_url = 'http://nohost/plone'

        self.repo = create(Builder('repository_root'))
        self.repository_folder = create(
            Builder('repository').within(self.repo))

        self.container = create(Builder('committee_container'))
        self.committee = create(
            Builder('committee').within(self.container).link_with(
                self.repository_folder))

        self.committee_model = self.committee.load_model()

        self.meeting = create(
            Builder('meeting').having(committee=self.committee_model))

        self.wrapper = MeetingWrapper(self.committee, self.meeting)
Beispiel #10
0
    def setUp(self):
        super(TestAgendaItem, self).setUp()
        self.admin_unit.public_url = 'http://nohost/plone'

        self.repository_root, self.repository_folder = create(
            Builder('repository_tree'))
        self.dossier = create(
            Builder('dossier').within(self.repository_folder))
        self.meeting_dossier = create(
            Builder('meeting_dossier').within(self.repository_folder))
        self.excerpt_template = create(Builder('sablontemplate')
                                       .with_asset_file('excerpt_template.docx'))
        self.container = create(Builder('committee_container')
                                .having(excerpt_template=self.excerpt_template))
        self.committee = create(Builder('committee').within(self.container))
        self.meeting = create(Builder('meeting')
                              .having(committee=self.committee.load_model())
                              .link_with(self.meeting_dossier))

        self.meeting_wrapper = MeetingWrapper.wrap(self.committee, self.meeting)
    def setUp(self):
        super(TestAgendaItem, self).setUp()
        self.admin_unit.public_url = 'http://nohost/plone'

        self.repository_root, self.repository_folder = create(
            Builder('repository_tree'))
        self.dossier = create(
            Builder('dossier').within(self.repository_folder))
        self.meeting_dossier = create(
            Builder('meeting_dossier').within(self.repository_folder))
        self.excerpt_template = create(
            Builder('sablontemplate').with_asset_file('excerpt_template.docx'))
        self.container = create(
            Builder('committee_container').having(
                excerpt_template=self.excerpt_template))
        self.committee = create(Builder('committee').within(self.container))
        self.meeting = create(
            Builder('meeting').having(
                committee=self.committee.load_model()).link_with(
                    self.meeting_dossier))

        self.meeting_wrapper = MeetingWrapper.wrap(self.committee,
                                                   self.meeting)
    def setUp(self):
        super(TestAgendaItem, self).setUp()
        self.admin_unit.public_url = 'http://nohost/plone'

        self.repository_root, self.repository_folder = create(
            Builder('repository_tree'))
        self.dossier = create(
            Builder('dossier').within(self.repository_folder))
        self.meeting_dossier = create(
            Builder('meeting_dossier').within(self.repository_folder))
        self.template = create(Builder('sablontemplate')
                                       .with_asset_file('empty.docx'))
        self.container = create(Builder('committee_container')
                                .having(ad_hoc_template=self.template))

        self.committee = create(Builder('committee').within(self.container))
        self.grant('CommitteeResponsible', on=self.committee)
        self.meeting = create(Builder('meeting')
                              .having(committee=self.committee.load_model())
                              .link_with(self.meeting_dossier))

        self.meeting_wrapper = MeetingWrapper.wrap(self.committee, self.meeting)

        self.grant('Contributor', 'Editor', 'Reader', 'MeetingUser')
Beispiel #13
0
    def _getOb(self, id_, default=_marker):
        """We extend `_getObj` in order to change the context for meeting
        objects to the `MeetingWrapper`. That allows us to register the
        meetings view as regular Browser view without any traversal hacks."""

        obj = super(Committee, self)._getOb(id_, default)
        if obj is not default:
            return obj

        if id_.startswith('meeting'):
            meeting_id = int(id_.split('-')[-1])
            meeting = Meeting.query.get(meeting_id)
            if meeting:
                return MeetingWrapper.wrap(self, meeting)

        elif id_.startswith('period'):
            period_id = int(id_.split('-')[-1])
            period = Period.query.get(period_id)
            if period:
                return PeriodWrapper.wrap(self, period)

        if default is _marker:
            raise KeyError(id_)
        return default