コード例 #1
0
class MediaForm(ListForm):
    template = 'admin/box-form.html'
    id = 'media-form'
    css_class = 'form'
    submit_text = None
    show_children_errors = True
    _name = 'media-form' # TODO: Figure out why this is required??
    
    event = events.Admin.MediaForm
    
    fields = [
        SingleSelectField('podcast', label_text=N_('Include in the Podcast'), css_classes=['dropdown-select'], help_text=N_('Optional'), options=lambda: [(None, None)] + DBSession.query(Podcast.id, Podcast.title).all()),
        TextField('slug', label_text=N_('Permalink'), maxlength=50),
        TextField('title', label_text=N_('Title'), validator=TextField.validator(not_empty=True), maxlength=255),
        TextField('author_name', label_text=N_('Author Name'), maxlength=50),
        TextField('author_email', label_text=N_('Author Email'), validator=email_validator(not_empty=True), maxlength=255),
        XHTMLTextArea('description', label_text=N_('Description'), attrs=dict(rows=5, cols=25)),
        CategoryCheckBoxList('categories', label_text=N_('Categories'), options=lambda: DBSession.query(Category.id, Category.name).all()),
        TextArea('tags', label_text=N_('Tags'), attrs=dict(rows=3, cols=15), help_text=N_(u'e.g.: puppies, great dane, adorable')),
        TextArea('notes',
            label_text=N_('Administrative Notes'),
            attrs=dict(rows=3, cols=25),
            container_attrs = lambda: ({'class': 'hidden'}, {})[bool(request.settings.get('wording_display_administrative_notes', ''))],
            default=lambda: request.settings['wording_administrative_notes']),
        SubmitButton('save', default=N_('Save'), named_button=True, css_classes=['btn', 'blue', 'f-rgt']),
        SubmitButton('delete', default=N_('Delete'), named_button=True, css_classes=['btn', 'f-lft']),
    ]
コード例 #2
0
class UploadForm(ListForm):
    template = 'admin/box-form.html'
    id = 'settings-form'
    css_class = 'form'
    submit_text = None

    event = events.Admin.Settings.UploadForm

    fields = [
        TextField('max_upload_size',
                  label_text=N_('Max. allowed upload file size in megabytes'),
                  validator=MegaByteValidator(not_empty=True, min=0)),
        ListFieldSet('legal_wording',
                     suppress_label=True,
                     legend=N_('Legal Wording:'),
                     css_classes=['details_fieldset'],
                     children=[
                         XHTMLTextArea('wording_user_uploads',
                                       label_text=N_('User Uploads'),
                                       attrs=dict(rows=15, cols=25)),
                     ]),
        SubmitButton('save',
                     default=N_('Save'),
                     css_classes=['btn', 'btn-save', 'blue', 'f-rgt']),
    ]
コード例 #3
0
ファイル: uploader.py プロジェクト: z0x010/mediadrop
 class fields(WidgetsList):
     name = TextField(validator=validators['name'], label_text=N_('Your Name:'), maxlength=50)
     email = TextField(validator=email_validator(not_empty=True), label_text=N_('Your Email:'), help_text=N_('(will never be published)'), maxlength=255)
     title = TextField(validator=validators['title'], label_text=N_('Title:'), maxlength=255)
     description = XHTMLTextArea(validator=validators['description'], label_text=N_('Description:'), attrs=dict(rows=5, cols=25))
     url = TextField(validator=validators['url'], label_text=N_('Add a YouTube, Vimeo or Amazon S3 link:'), maxlength=255)
     file = FileField(validator=FieldStorageUploadConverter(if_missing=None, messages={'empty':N_('Oops! You forgot to enter a file.')}), label_text=N_('OR:'))
     submit = SubmitButton(default=N_('Submit'), css_classes=['mcore-btn', 'btn-submit'])
コード例 #4
0
 class fields(WidgetsList):
     podcast_include = SingleSelectField(
         'podcast',
         label_text=N_('Include in the Podcast'),
         css_classes=['dropdown-select'],
         options=lambda: [(None, None)] + DBSession.query(
             Podcast.id, Podcast.title).all())
     title = TextField(validator=validators['title'],
                       label_text=N_('Title:'),
                       maxlength=255)
     description = XHTMLTextArea(validator=validators['description'],
                                 label_text=N_('Description:'),
                                 attrs=dict(rows=5, cols=25))
     file = FileField(validator=FieldStorageUploadConverter(
         if_missing=None,
         messages={'empty': N_('Oops! You forgot to enter a file.')}))
     submit = SubmitButton(default=N_('Submit'),
                           css_classes=['mcore-btn', 'btn-submit'])
コード例 #5
0
ファイル: uploader.py プロジェクト: anitahitouch/mediadrop
# Copyright 2009-2015 MediaDrop contributors
# For the exact contribution history, see the git revision log.
# The source code contained in this file is licensed under the GPLv3 or
# (at your option) any later version.
# See LICENSE.txt in the main project directory, for more information.

from tw.api import WidgetsList
from tw.forms.validators import FieldStorageUploadConverter

from mediadrop.lib.i18n import N_
from mediadrop.forms import ListForm, TextField, XHTMLTextArea, FileField, SubmitButton, email_validator
from mediadrop.plugin import events

validators = dict(
    description = XHTMLTextArea.validator(
        messages = {'empty': N_('At least give it a short description...')},
        not_empty = True,
    ),
    name = TextField.validator(
        messages = {'empty': N_("You've gotta have a name!")},
        not_empty = True,
    ),
    title = TextField.validator(
        messages = {'empty': N_("You've gotta have a title!")},
        not_empty = True,
    ),
    url = TextField.validator(
        if_missing = None,
    ),
)

class UploadForm(ListForm):
コード例 #6
0
ファイル: uploader.py プロジェクト: z0x010/mediadrop
# Copyright 2009-2015 MediaDrop contributors
# For the exact contribution history, see the git revision log.
# The source code contained in this file is licensed under the GPLv3 or
# (at your option) any later version.
# See LICENSE.txt in the main project directory, for more information.

from tw.api import WidgetsList
from tw.forms.validators import FieldStorageUploadConverter

from mediadrop.lib.i18n import N_
from mediadrop.forms import ListForm, TextField, XHTMLTextArea, FileField, SubmitButton, email_validator
from mediadrop.plugin import events

validators = dict(
    description = XHTMLTextArea.validator(
        messages = {'empty': N_('At least give it a short description...')},
        not_empty = True,
    ),
    name = TextField.validator(
        messages = {'empty': N_("You've gotta have a name!")},
        not_empty = True,
    ),
    title = TextField.validator(
        messages = {'empty': N_("You've gotta have a title!")},
        not_empty = True,
    ),
    url = TextField.validator(
        if_missing = None,
    ),
)

class UploadForm(ListForm):
コード例 #7
0
ファイル: podcasts.py プロジェクト: sudheesh001/mediadrop
class PodcastForm(ListForm):
    template = 'admin/box-form.html'
    id = 'podcast-form'
    css_class = 'form'
    submit_text = None

    event = events.Admin.PodcastForm

    # required to support multiple named buttons to differentiate between Save & Delete?
    _name = 'vf'

    explicit_options = lambda: (
        ('no', ''),
        ('yes', _('Parental Advisory')),
        ('clean', _('Clean')),
    )
    category_options = [
        'Arts',
        'Arts > Design',
        'Arts > Fashion & Beauty',
        'Arts > Food',
        'Arts > Literature',
        'Arts > Performing Arts',
        'Arts > Visual Arts',
        'Business',
        'Business > Business News',
        'Business > Careers',
        'Business > Investing',
        'Business > Management & Marketing',
        'Business > Shopping',
        'Comedy',
        'Education',
        'Education > Education Technology',
        'Education > Higher Education',
        'Education > K-12',
        'Education > Language Courses',
        'Education > Training',
        'Games & Hobbies',
        'Games & Hobbies > Automotive',
        'Games & Hobbies > Aviation',
        'Games & Hobbies > Hobbies',
        'Games & Hobbies > Other Games',
        'Games & Hobbies > Video Games',
        'Government & Organizations',
        'Government & Organizations > Local',
        'Government & Organizations > National',
        'Government & Organizations > Non-Profit',
        'Government & Organizations > Regional',
        'Health',
        'Health > Alternative Health',
        'Health > Fitness & Nutrition',
        'Health > Self-Help',
        'Health > Sexuality',
        'Kids & Family',
        'Music',
        'News & Politics',
        'Religion & Spirituality',
        'Religion & Spirituality > Buddhism',
        'Religion & Spirituality > Christianity',
        'Religion & Spirituality > Hinduism',
        'Religion & Spirituality > Islam',
        'Religion & Spirituality > Judaism',
        'Religion & Spirituality > Other',
        'Religion & Spirituality > Spirituality',
        'Science & Medicine',
        'Science & Medicine > Medicine',
        'Science & Medicine > Natural Sciences',
        'Science & Medicine > Social Sciences',
        'Society & Culture',
        'Society & Culture > History',
        'Society & Culture > Personal Journals',
        'Society & Culture > Philosophy',
        'Society & Culture > Places & Travel',
        'Sports & Recreation',
        'Sports & Recreation > Amateur',
        'Sports & Recreation > College & High School',
        'Sports & Recreation > Outdoor',
        'Sports & Recreation > Professional',
        'Technology',
        'Technology > Gadgets',
        'Technology > Tech News',
        'Technology > Podcasting',
        'Technology > Software How-To',
        'TV & Film',
    ]

    fields = [
        TextField('slug',
                  label_text=N_('Permalink'),
                  validator=NotEmpty,
                  maxlength=50),
        TextField('title',
                  label_text=N_('Title'),
                  validator=TextField.validator(not_empty=True),
                  maxlength=50),
        TextField('subtitle', label_text=N_('Subtitle'), maxlength=255),
        TextField('author_name',
                  label_text=N_('Author Name'),
                  validator=TextField.validator(not_empty=True),
                  maxlength=50),
        TextField('author_email',
                  label_text=N_('Author Email'),
                  validator=email_validator(not_empty=True),
                  maxlength=50),
        XHTMLTextArea('description',
                      label_text=N_('Description'),
                      attrs=dict(rows=5, cols=25)),
        ListFieldSet('details',
                     suppress_label=True,
                     legend=N_('Podcast Details:'),
                     css_classes=['details_fieldset'],
                     children=[
                         SingleSelectField('explicit',
                                           label_text=N_('Explicit?'),
                                           options=explicit_options),
                         SingleSelectField('category',
                                           label_text=N_('Category'),
                                           options=category_options),
                         TextField('copyright',
                                   label_text=N_('Copyright'),
                                   maxlength=50),
                     ]),
        ListFieldSet('feed',
                     suppress_label=True,
                     legend=N_('Advanced Options:'),
                     css_classes=['details_fieldset'],
                     template='/admin/podcasts/feed_fieldset.html',
                     children=[
                         TextField('feed_url',
                                   maxlength=50,
                                   label_text=N_('Your Feed URL'),
                                   attrs={'readonly': True}),
                         TextField('itunes_url',
                                   validator=URL,
                                   label_text=N_('iTunes URL'),
                                   maxlength=80),
                         TextField('feedburner_url',
                                   validator=URL,
                                   label_text=N_('Feedburner URL'),
                                   maxlength=80),
                     ]),
        SubmitButton('save',
                     default=N_('Save'),
                     named_button=True,
                     css_classes=['btn', 'blue', 'f-rgt']),
        SubmitButton('delete',
                     default=N_('Delete'),
                     named_button=True,
                     css_classes=['btn']),
    ]
コード例 #8
0
# Copyright 2009-2013 MediaDrop contributors
# For the exact contribution history, see the git revision log.
# The source code contained in this file is licensed under the GPLv3 or
# (at your option) any later version.
# See LICENSE.txt in the main project directory, for more information.

from tw.api import WidgetsList
from tw.forms.validators import FieldStorageUploadConverter

from mediadrop.lib.i18n import N_
from mediadrop.forms import ListForm, TextField, XHTMLTextArea, FileField, SubmitButton, email_validator
from mediadrop.plugin import events

validators = dict(
    description=XHTMLTextArea.validator(
        messages={"empty": N_("At least give it a short description...")}, not_empty=True
    ),
    name=TextField.validator(messages={"empty": N_("You've gotta have a name!")}, not_empty=True),
    title=TextField.validator(messages={"empty": N_("You've gotta have a title!")}, not_empty=True),
    url=TextField.validator(if_missing=None),
)


class UploadForm(ListForm):
    template = "upload/form.html"
    id = "upload-form"
    css_class = "form"
    show_children_errors = False
    params = ["async_action"]

    events = events.UploadForm