コード例 #1
0
class OpenHoursBlock(blocks.StructBlock):
    """
    Holds day and time combination for business open hours.
    """
    days = MultiSelectBlock(
        required=True,
        verbose_name=_('Days'),
        help_text=_('For late night hours past 23:59, define each day in a separate block.'),
        widget=forms.CheckboxSelectMultiple,
        choices=(
            ('Monday', _('Monday')),
            ('Tuesday', _('Tuesday')),
            ('Wednesday', _('Wednesday')),
            ('Thursday', _('Thursday')),
            ('Friday', _('Friday')),
            ('Saturday', _('Saturday')),
            ('Sunday', _('Sunday')),
        ))
    start_time = blocks.TimeBlock(verbose_name=_('Opening time'))
    end_time = blocks.TimeBlock(verbose_name=_('Closing time'))

    class Meta:
        template = 'coderedcms/blocks/struct_data_hours.json'
        label = _('Open Hours')
        value_class = OpenHoursValue
コード例 #2
0
ファイル: blocks.py プロジェクト: jrobind/developer-portal
class AgendaItemBlock(blocks.StructBlock):
    """Content for an event agenda item"""
    start_time = blocks.TimeBlock()
    end_time = blocks.TimeBlock(required=False)
    title = blocks.CharBlock()
    speaker = blocks.PageChooserBlock(required=False, page_type='people.Person')
    external_speaker = blocks.StructBlock([
        ('name', blocks.CharBlock(required=False)),
        ('url', blocks.URLBlock(label='URL', required=False)),
    ])
コード例 #3
0
ファイル: blocks.py プロジェクト: ababic/newamerica-cms
class SessionBlock(blocks.StructBlock):
    name = blocks.TextBlock(required=False)
    #session_type = SessionTypesBlock()
    description = blocks.RichTextBlock(required=False)
    start_time = blocks.TimeBlock(required=False)
    end_time = blocks.TimeBlock(required=False)
    speakers = blocks.StreamBlock([('speaker', SessionSpeakerBlock())],
                                  required=False)
    archived_video_link = blocks.URLBlock(
        help_text="Enter youtube link after conference", required=False)
コード例 #4
0
ファイル: blocks.py プロジェクト: ababic/newamerica-cms
class SessionDayBlock(blocks.StructBlock):
    collapsible = blocks.BooleanBlock(
        help_text="Allow schedule sessions to expand and collapse",
        required=False,
        default=True)
    day = IntegerChoiceBlock(
        help_text="What day of the conference is this session on?",
        required=False,
        default=1)
    start_time = blocks.TimeBlock(required=False)
    end_time = blocks.TimeBlock(required=False)
    sessions = blocks.StreamBlock([('session', SessionBlock())])
コード例 #5
0
class AgendaItemBlock(blocks.StructBlock):
    start_time = blocks.TimeBlock(label="Start", required=False)
    end_time = blocks.TimeBlock(label="End", required=False)
    description = blocks.CharBlock(max_length=100, required=False)
    location = blocks.CharBlock(max_length=100, required=False)
    speakers = blocks.ListBlock(blocks.StructBlock([
        ('name', blocks.CharBlock(required=False)),
        ('url', blocks.URLBlock(required=False)),
    ], icon='user', required=False))

    objects = PageManager()

    class Meta:
        icon = 'date'
コード例 #6
0
class ConcertBlock(blocks.StructBlock):
    band_img = ImageChooserBlock(required=True)
    hidden = blocks.BooleanBlock(
        default=True,
        help_text=_(
            'If hidden box is checked, concert will not be displayed on'
            ' the page'),
        required=False)
    on_sale = blocks.BooleanBlock(
        default=True,
        help_text=_('If unchecked, Buy Tickets button will be grayed out'),
        required=False)
    virtual = blocks.BooleanBlock(default=False,
                                  help_text=_('Is this a virtual concert?'),
                                  required=False)
    canceled = blocks.BooleanBlock(default=False, required=False)
    postponed = blocks.BooleanBlock(default=False, required=False)
    sold_out = blocks.BooleanBlock(default=False, required=False)
    # Virtual concert will remain available on demand until this date
    available_until = blocks.DateTimeBlock(
        required=False,
        blank=True,
        null=True,
        help_text=_(
            'Date that on-demand virtual concert will remain available until'))
    # Band/opener names and url properties replaced with single RichTextField to account for wide variety in how the
    # bands info may be displayed
    band_info = blocks.RichTextBlock(help_text=_(
        'Provide the names of the bands/openers and any other info here. Text will be'
        ' centered.'))
    concert_dates = blocks.ListBlock(blocks.DateTimeBlock())
    gates_time = blocks.TimeBlock(default=datetime.time(hour=18),
                                  required=False,
                                  blank=True,
                                  null=True)
    show_time = blocks.TimeBlock(default=datetime.time(hour=19),
                                 required=False,
                                 blank=True,
                                 null=True)
    member_price = blocks.CharBlock(default='$',
                                    max_length=100,
                                    blank=True,
                                    null=True)
    public_price = blocks.CharBlock(default='$', max_length=100)

    # Added a ticket URL for concerts that are sold from a non-standard URL
    ticket_url = blocks.URLBlock(
        default='https://redbuttegarden.ticketfly.com')
コード例 #7
0
ファイル: models.py プロジェクト: xavierchan/elite-wagtail
class HomePage(Page):
    advert = models.ForeignKey('home.Advert',
                               null=True,
                               blank=True,
                               on_delete=models.SET_NULL,
                               related_name='+')

    body = StreamField([
        ('Paragraph', blocks.RichTextBlock()),
        ('Image', ImageChooserBlock()),
        ('OtherImgBlock', OtherImgBlock()),
        ('Text', blocks.TextBlock()),
        ('Heading', blocks.CharBlock()),
        ('BlockQuote', blocks.BlockQuoteBlock()),
        ('Email', blocks.EmailBlock()),
        ('URL', blocks.URLBlock()),
        ('Boolean', blocks.BooleanBlock()),
        ('Integer', blocks.IntegerBlock()),
        ('Float', blocks.FloatBlock()),
        ('Decimal', blocks.DecimalBlock()),
        ('Date', blocks.DateBlock()),
        ('Time', blocks.TimeBlock()),
        ('DateTime', blocks.DateTimeBlock()),
        ('RawHTML', blocks.RawHTMLBlock()),
        ('Choice', blocks.ChoiceBlock()),
        ('PageChooser', blocks.PageChooserBlock()),
        ('DocumentChooser', DocumentChooserBlock()),
        ('Banner', BannerBlock()),
        ('Embed', EmbedBlock()),
        ('RecommendCourse',
         blocks.StructBlock([('title', blocks.CharBlock()),
                             ('courses', blocks.ListBlock(CourseBlock()))],
                            template='home/blocks/recommend_courses.html')),
        ('SeriesCourse',
         blocks.StructBlock([('title', blocks.CharBlock()),
                             ('series', blocks.ListBlock(SeriesBlock()))],
                            template='home/blocks/series_list.html')),
        ('StoryBlock', StoryBlock()),
        ('ProfessorBlock', ProfessorBlock()),
        ('CategoriesListBlock', CategoriesListBlock()),
        ('SubjectCourse',
         blocks.StructBlock(
             [('required_course', blocks.ListBlock(SeriesBlock())),
              ('optional_course', blocks.ListBlock(SeriesBlock()))],
             template='home/blocks/subject_course.html')),
        ('VipBlock', VipBlock()),
        ('SeriesProcessBlock', SeriesProcessBlock()),
    ])

    content_panels = Page.content_panels + [
        StreamFieldPanel('body'),
        SnippetChooserPanel('advert'),
    ]

    api_fields = [
        APIField('body'),
    ]
コード例 #8
0
ファイル: models.py プロジェクト: sergiobrr/chambray
class EventDetailBlock(blocks.StructBlock):
    """
	Represents the details of an event
	from start date to address and
	location on a map
	"""
    start_date = blocks.DateBlock()
    start_time = blocks.TimeBlock()
    end_date = blocks.DateBlock()
    end_time = blocks.TimeBlock()
    address = blocks.CharBlock()
    location = GeoBlock(address_field='address', required=False)

    class Meta:
        icon = 'site'
        template = 'blog/event_details.html'
        default = {
            'start_date': datetime.date.today(),
            'start_time': datetime.datetime.now().time(),
            'end_date': datetime.date.today(),
            'end_time': datetime.datetime.now().time(),
            'address': 'Mgarr Road, Xewkija XWK 9014, Malta'
        }
        label = 'Event details'
コード例 #9
0
ファイル: models.py プロジェクト: aichner/wagtail-template
class _S_TallBlock(blocks.StructBlock):
    timeblock = blocks.TimeBlock()
    datetimeblock = blocks.DateTimeBlock()
    richtextblock = blocks.RichTextBlock()
    rawhtmlblock = blocks.RawHTMLBlock()
    blockquoteblock = blocks.BlockQuoteBlock()
    choiceblock = blocks.ChoiceBlock(choices=[
        ("apples", "Apple"),
        ("bananas", "Bananas"),
    ])

    graphql_fields = [
        GraphQLString("timeblock"),
        GraphQLString("datetimeblock"),
        GraphQLString("richtextblock"),
        GraphQLString("rawhtmlblock"),
        GraphQLString("blockquoteblock"),
        GraphQLString("choiceblock"),
    ]
コード例 #10
0
class CustomBlock1(blocks.StructBlock):
    field_char = blocks.CharBlock(required=False)
    field_text = blocks.TextBlock(required=False)
    field_email = blocks.EmailBlock(required=False)
    field_int = blocks.IntegerBlock(required=False)
    field_float = blocks.FloatBlock(required=False)
    field_decimal = blocks.DecimalBlock(required=False)
    field_regex = blocks.RegexBlock(regex=r'^[0-9]{3}$', required=False)
    field_url = blocks.URLBlock(required=False)
    field_bool = blocks.BooleanBlock(required=False)
    field_date = blocks.DateBlock(required=False)
    field_time = blocks.TimeBlock(required=False)
    field_datetime = blocks.DateTimeBlock(required=False)
    field_rich = blocks.RichTextBlock(required=False)
    field_raw = blocks.RawHTMLBlock(required=False)
    field_quote = blocks.BlockQuoteBlock(required=False)
    field_choice = blocks.ChoiceBlock(choices=[('tea', 'Tea'),
                                               ('coffee', 'Coffee')],
                                      icon='cup',
                                      required=False)
    field_static = blocks.StaticBlock(required=False)
    field_list = blocks.ListBlock(blocks.CharBlock, required=False)
    field_list_2 = blocks.ListBlock(CustomBlockInner, required=False)
コード例 #11
0
class PageTypeA(Page):
    streamfield = StreamField([
        ('h1', blocks.CharBlock(icon="title", classname="title")),
        ('h2', blocks.CharBlock(icon="subtitle", classname="subtitle")),
        ('n1', blocks.IntegerBlock(icon="subtitle", classname="subtitle")),
    ],
                              null=True,
                              blank=True)

    another = StreamField([
        ('h3', blocks.CharBlock(icon="title", classname="title")),
        ('h4', blocks.CharBlock(icon="subtitle", classname="subtitle")),
        ('n2', blocks.IntegerBlock(icon="subtitle", classname="subtitle")),
    ],
                          null=True,
                          blank=True)

    third = StreamField([
        ('char', blocks.CharBlock()),
        ('text', blocks.TextBlock()),
        ('email', blocks.EmailBlock()),
        ('int', blocks.IntegerBlock()),
        ('float', blocks.FloatBlock()),
        ('decimal', blocks.DecimalBlock()),
        ('regex', blocks.RegexBlock(regex=r'^[0-9]{3}$')),
        ('url', blocks.URLBlock()),
        ('bool', blocks.BooleanBlock()),
        ('date', blocks.DateBlock()),
        ('time', blocks.TimeBlock()),
        ('datetime', blocks.DateTimeBlock()),
        ('rich', blocks.RichTextBlock()),
        ('raw', blocks.RawHTMLBlock()),
        ('quote', blocks.BlockQuoteBlock()),
        ('choice',
         blocks.ChoiceBlock(choices=[('tea', 'Tea'), ('coffee', 'Coffee')],
                            icon='cup')),
        ('static', blocks.StaticBlock()),
    ],
                        null=True)

    links = StreamField([
        ('image', ImageChooserBlock()),
        ('page', PageChooserBlock()),
        ('snippet', SnippetChooserBlock(target_model=App2Snippet)),
    ],
                        null=True)

    lists = StreamField([
        ('char', blocks.ListBlock(blocks.CharBlock())),
        ('text', blocks.ListBlock(blocks.TextBlock())),
        ('int', blocks.ListBlock(blocks.IntegerBlock())),
        ('float', blocks.ListBlock(blocks.FloatBlock())),
        ('decimal', blocks.ListBlock(blocks.DecimalBlock())),
        ('date', blocks.ListBlock(blocks.DateBlock())),
        ('time', blocks.ListBlock(blocks.TimeBlock())),
        ('datetime', blocks.ListBlock(blocks.DateTimeBlock())),
    ],
                        null=True)

    links_list = StreamField([
        ('image', blocks.ListBlock(ImageChooserBlock())),
        ('page', blocks.ListBlock(PageChooserBlock())),
        ('snippet',
         blocks.ListBlock(SnippetChooserBlock(target_model=App2Snippet))),
    ],
                             null=True)

    custom = StreamField([
        ('custom1', CustomBlock1()),
        ('custom2', CustomBlock2()),
    ],
                         null=True)

    another_custom = StreamField([
        ('custom1', CustomBlock1()),
        ('custom2', CustomBlock2()),
    ],
                                 null=True)

    custom_lists = StreamField([
        ('custom1', blocks.ListBlock(CustomBlock1())),
        ('custom2', blocks.ListBlock(CustomBlock2())),
    ],
                               null=True)

    content_panels = [
        FieldPanel('title', classname="full title"),
        StreamFieldPanel('streamfield'),
        StreamFieldPanel('another'),
        StreamFieldPanel('third'),
        StreamFieldPanel('links'),
        StreamFieldPanel('custom'),
        StreamFieldPanel('another_custom'),
        StreamFieldPanel('lists'),
        StreamFieldPanel('links_list'),
        StreamFieldPanel('custom_lists'),
    ]
コード例 #12
0
class BasicPage(Page):
    body = StreamField([
        ('heading', blocks.CharBlock(classname="full title")),
        ('paragraph', blocks.RichTextBlock()),
        ('image', ImageChooserBlock()),
        ('table', TableBlock()),
        ('BlockQuoteBlock', BlockQuoteBlock()),
        ('URLBlock', URLBlock()),
        ('EmailBlock', EmailBlock()),
        ('DateBlock', DateBlock()),
        ('TimeBlock', TimeBlock()),
        ('DateTimeBlock', DateBlock()),
        ('PageChooserBlock', PageChooserBlock()),
        ('DocumentChooserBlock', DocumentChooserBlock()),
        ('IframeBlock', TextBlock()),
        ('EmbedBlock', EmbedBlock()),
        ('form', WagtailFormBlock()),
        ('show_business_hours',
         BooleanBlock(
             required=False,
             help_text="If checked, the library hours will display on the page",
             template='basic_page/blocks/business_hours.html',
             icon='user')),
        ('show_next_closure',
         BooleanBlock(
             required=False,
             help_text="If checked, the next library closure will display",
             template='basic_page/blocks/next_closure.html',
             icon='user')),
        ('show_all_closures',
         BooleanBlock(
             required=False,
             help_text=
             "If checked, all upcoming library closures will be shown",
             template='basic_page/blocks/all_closures.html',
             icon='user')),
        ('map',
         blocks.StructBlock([
             ('address', GeoAddressBlock(required=True)),
             ('map', GeoBlock(address_field='address')),
         ],
                            template='basic_page/blocks/map.html',
                            icon='user')),
        ('bookClub',
         blocks.StructBlock(
             [('book_club_name', blocks.CharBlock()),
              ('book_club_day_of_the_week', blocks.TextBlock()),
              ('book_club_PDF', DocumentChooserBlock(required=False)),
              ('book_club_time', blocks.TimeBlock()),
              ('books',
               blocks.StreamBlock([
                   (
                       'book',
                       blocks.StructBlock(
                           [
                               ('book_name', blocks.CharBlock()),
                               ('author_name', blocks.CharBlock()),
                               ('reading_date', blocks.DateBlock()),
                               ('book_description', blocks.RichTextBlock()),
                               ('book_cover',
                                ImageChooserBlock(required=False)),
                           ],
                           template='basic_page/blocks/books.html'),
                   ),
               ]))],
             template='basic_page/blocks/book_club.html',
             icon='openquote')),
        ('panel',
         blocks.StructBlock([
             ('panel_name', blocks.CharBlock()),
             ('show_by_default',
              blocks.BooleanBlock(
                  required=False,
                  help_text="Display Panel as open by default")),
             ('panel_body',
              blocks.StreamBlock([
                  (
                      'panel_items',
                      blocks.StructBlock([
                          ('panel_item_title', blocks.CharBlock()),
                          ('panel_link',
                           URLBlock(
                               required=False,
                               help_text="Use this for images you wish to link"
                           )),
                          ('panel_image',
                           ImageChooserBlock(
                               required=False,
                               help_text="Use this for images you wish to link"
                           )),
                          ('panel_description', blocks.RichTextBlock()),
                      ],
                                         template=
                                         'basic_page/blocks/panel_items.html'),
                  ),
              ]))
         ],
                            template='basic_page/blocks/panel.html',
                            icon='collapse-down')),
    ],
                       blank=True)

    def get_context(self, request):
        data = super(BasicPage, self).get_context(request)
        return data

    content_panels = Page.content_panels + [
        StreamFieldPanel('body'),
    ]

    # Search index configuration
    search_fields = Page.search_fields + [
        index.SearchField('body'),
    ]