コード例 #1
0
def test_browser__EventView__8(address_book, EventViewConfigurationFactory,
                               EventFactory, FieldFactory, PersonFactory,
                               DateTime, browser):
    """It renders the selected fields."""
    field_name = FieldFactory(address_book, IEvent, 'Int', u'seats').__name__
    EventFactory(
        address_book, **{
            'datetime': DateTime.now,
            field_name: 42,
            'external_persons': [u'Berta Vimladil'],
            'persons': set([PersonFactory(address_book, u'Tester')]),
            'text': u'to be canceled',
        })
    event_entity = IEntity(IEvent)
    EventViewConfigurationFactory(address_book,
                                  u'-1 day for 1 week',
                                  start=-1,
                                  duration=7,
                                  fields=[
                                      event_entity.getRawField('persons'),
                                      event_entity.getRawField(field_name)
                                  ])

    browser.login('cal-visitor')
    browser.open(browser.CALENDAR_EVENT_VIEWS_URL)
    assert '>Berta Vimladil, Tester<' in browser.ucontents
    assert '>42<' in browser.ucontents
    assert 'to be canceled' not in browser.ucontents
コード例 #2
0
def test_calendar__CalendarView__1(address_book, FieldFactory, browser):
    """It allows to select fields for display in the calendar."""
    field = FieldFactory(
        address_book, IEvent, u'Int', u'reservations').__name__
    browser.login('cal-editor')
    browser.open(browser.CALENDAR_MASTERDATA_URL)
    browser.getLink('Calendar view').click()
    assert browser.CALENDAR_MASTERDATA_EDIT_DISPLAY_URL == browser.url
    browser.getControl('Additional event fields').displayValue = [
        'persons',
        'reservations',
    ]
    browser.getControl('Save').click()
    assert 'Data successfully updated.' == browser.message
    browser.open(browser.CALENDAR_MASTERDATA_EDIT_DISPLAY_URL)
    assert browser.getControl('Additional event fields').displayValue == [
        'persons',
        'reservations',
    ]
    # It does not break on selected but deleted user defined field:
    with zope.component.hooks.site(address_book):
        event_entity = IEntity(IEvent)
        event_entity.removeField(event_entity.getRawField(field))
    browser.open(browser.CALENDAR_MASTERDATA_EDIT_DISPLAY_URL)
    assert browser.getControl('Additional event fields').displayValue == [
        'persons',
    ]
コード例 #3
0
 def get_table_event(event, field_names=[], request_kw={}):
     request = RequestFactory(**request_kw)
     event_entity = IEntity(IEvent)
     ICalendarDisplaySettings(
         address_book.calendar).event_additional_fields = [
             event_entity.getRawField(x) for x in field_names
         ]
     event_description = IEventDescription(event)
     return zope.component.getMultiAdapter((event_description, request),
                                           name='table-event')
コード例 #4
0
def test_calendar__EventDescription__getInfo__2(address_book, EventFactory,
                                                DateTime, CategoryFactory,
                                                selected_user_field,
                                                utc_time_zone_pref):
    """It ignores a selected but later deleted user defined field."""
    ed = IEventDescription(
        EventFactory(
            address_book, **{
                'datetime': DateTime.now,
                'text': u'Text1',
                'category': CategoryFactory(address_book, u'bar'),
                selected_user_field: 42
            }))
    event_entity = IEntity(IEvent)
    event_entity.removeField(event_entity.getRawField(selected_user_field))
    assert ['Text1'] == ed.getInfo()
コード例 #5
0
def set_event_additional_fields(address_book, *field_names):
    """Set the given fields to be displayed when an event is rendered."""
    event_entity = IEntity(IEvent)
    ICalendarDisplaySettings(address_book.calendar).event_additional_fields = [
        event_entity.getRawField(x) for x in field_names
    ]