class SongForm(forms.ModelForm): description = forms.CharField(widget=PagedownWidget()) lyrics = forms.CharField(widget=PagedownWidget()) class Meta: model = Song fields = '__all__'
class ProposalForm(forms.Form): ''' Used for create/edit ''' title = forms.CharField(min_length=10, help_text="Title of the proposal, no buzz words!", widget=forms.TextInput(attrs={'class': 'charfield'})) description = forms.CharField(widget=PagedownWidget(show_preview=True), help_text=("Describe your proposal with clear objective in simple sentence." " Keep it short and simple.")) target_audience = forms.ChoiceField( choices=ProposalTargetAudience.CHOICES, widget=forms.Select(attrs={'class': 'dropdown'})) status = forms.ChoiceField( widget=forms.Select(attrs={'class': 'dropdown'}), choices=ProposalStatus.CHOICES, help_text=("If you choose DRAFT people can't the see the session in the list." " Make the proposal PUBLIC when you're done with editing the session.")) proposal_type = forms.ChoiceField( widget=forms.Select(attrs={'class': 'dropdown'})) proposal_section = forms.ChoiceField( widget=forms.Select(attrs={'class': 'dropdown'})) # Additional Content prerequisites = forms.CharField( widget=PagedownWidget(show_preview=True), required=False, help_text="What should the participants know before attending your session?") content_urls = forms.CharField( widget=PagedownWidget(show_preview=True), required=False, help_text="Links to your session like GitHub repo, Blog, Slideshare etc ...") speaker_info = forms.CharField( widget=PagedownWidget(show_preview=True), required=False, help_text="Say something about yourself, work etc...") speaker_links = forms.CharField( widget=PagedownWidget(show_preview=True), required=False, help_text="Links to your previous work like Blog, Open Source Contributions etc ...") def __init__(self, conference, action="edit", *args, **kwargs): super(ProposalForm, self).__init__(*args, **kwargs) self.fields['proposal_section'].choices = _get_proposal_section_choices( conference, action=action) self.fields['proposal_type'].choices = _get_proposal_type_choices( conference, action=action) @classmethod def populate_form_for_update(self, proposal): form = ProposalForm(proposal.conference, initial={'title': proposal.title, 'description': proposal.description, 'target_audience': proposal.target_audience, 'prerequisites': proposal.prerequisites, 'content_urls': proposal.content_urls, 'speaker_info': proposal.speaker_info, 'speaker_links': proposal.speaker_links, 'status': proposal.status, 'proposal_section': proposal.proposal_section.pk, 'proposal_type': proposal.proposal_type.pk, }) return form
class Meta: model = EquipmentClass fields = ('name', 'category', 'description', 'value', 'url', 'model_number', 'manufacturer', 'length', 'width', 'height', 'weight', 'wiki_text') widgets = { 'description': PagedownWidget(), 'wiki_text': PagedownWidget(), }
class PostForm(forms.ModelForm): preview = forms.CharField(widget=PagedownWidget(show_preview=False)) body_text = forms.CharField(widget=PagedownWidget(show_preview=False)) class Meta: model = Post fields = [ 'title', 'preview', 'body_text', 'image', 'category', 'tag', 'status' ]
class MeetingAdditionForm(forms.ModelForm): def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.form_class = 'form-horizontal' self.helper.form_tag = False self.helper.include_media = False self.helper.layout = Layout( TabHolder( Tab('Basic Info', 'meeting_type', 'location', Field('datetime', css_class='dtp'), 'duration'), Tab( 'Attendance', 'attendance', ), Tab( 'Agenda', 'agenda', ), Tab('Open Minutes', 'minutes', 'attachments'), Tab('Closed Minutes', 'minutes_private', 'attachments_private'), ), FormActions(Submit('save', 'Save Changes'), )) super(MeetingAdditionForm, self).__init__(*args, **kwargs) duration = NaturalDurationField(human_values=True, required=True) attendance = AutoCompleteSelectMultipleField('Users', required=False) datetime = SplitDateTimeField(required=True, initial=datetime.datetime.today()) location = forms.ModelChoiceField( queryset=Location.objects.filter(available_for_meetings=True), label="Location", required=False) attachments = MultiFileField( max_file_size=1024 * 1024 * 20, # 20 MB required=False) attachments_private = MultiFileField( max_file_size=1024 * 1024 * 20, # 20 MB label="Closed Attachments", required=False) minutes = forms.CharField(widget=PagedownWidget(), required=False) agenda = forms.CharField(widget=PagedownWidget(), required=False) minutes_private = forms.CharField(widget=PagedownWidget(), label="Closed Minutes", required=False) class Meta: model = Meeting widgets = { 'datetime': forms.widgets.DateInput(attrs={"class": "datepick"}), } fields = ('meeting_type', 'location', 'datetime', 'attendance', 'duration', 'agenda', 'minutes', 'minutes_private')
class CategoryBusinessForm(ModelForm): logo = forms.ImageField( label='logo', required=False, widget=forms.ClearableFileInput(attrs={ 'placeholder': 'Logo', 'class': 'btn btn-outline-secondary' })) description = forms.CharField(widget=PagedownWidget()) class Meta: model = Business fields = ('name', 'logo', 'email', 'description', 'website', 'location', 'address', 'services') def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_class = 'form-horizontal' self.helper.label_class = 'col-lg-2' self.helper.field_class = 'col-lg-8' self.helper.form_method = 'post' self.helper.layout = Layout( 'name', 'logo', 'email', 'description', 'website', 'location', 'address', 'services', )
class ProfileForm(forms.ModelForm): bio = forms.CharField(widget=PagedownWidget()) class Meta: model = Profile fields = ('bio', )
class ProblemForm(forms.ModelForm): statement = forms.CharField(widget=PagedownWidget(show_preview=False)) class Meta: model = Problem fields = [ "title", "problem_code", "statement", "level", "tags", "unlisted", "time_limit", "memory_limit", # "solution_checker" ] def __init__(self, *args, **kwargs): super(ProblemForm, self).__init__(*args, **kwargs) instance = getattr(self, 'instance', None) if instance and instance.pk: self.fields['problem_code'].required = False self.fields['problem_code'].widget = forms.HiddenInput() for visible in self.visible_fields(): visible.field.widget.attrs['class'] = 'form-control' self.fields['unlisted'].widget.attrs['class'] = '' def clean_problem_code(self): instance = getattr(self, 'instance', None) if instance and instance.pk: return instance.problem_code else: return self.cleaned_data['problem_code']
class MembershipForm(forms.ModelForm): """Membership form for before pairs have been assigned.""" avoid = forms.ModelMultipleChoiceField( queryset=None, required=False, widget=forms.CheckboxSelectMultiple, help_text="You may still be assigned a person who you've asked to avoid.") prefer = forms.ModelMultipleChoiceField( queryset=None, required=False, widget=forms.CheckboxSelectMultiple, help_text="You might not be assigned any of the people who you've preferred.") partner = forms.ModelChoiceField(queryset=None, required=False) wishlist = forms.CharField(widget=PagedownWidget()) def __init__(self, *args, **kwargs): # Pop so __init__ doesn't recieve unexpected kwargs self.request = kwargs.pop('request') self.membership = kwargs.pop('membership') super(MembershipForm, self).__init__(*args, **kwargs) # Exclude current user from choice field querysets # and only include members of current group giftgroup = self.membership.giftgroup invitations = Invitation.objects.filter( gift_group=giftgroup).exclude(to_name=self.request.user.username) self.fields['avoid'].queryset = invitations self.fields['prefer'].queryset = invitations self.fields['partner'].queryset = invitations class Meta: model = Membership fields = ['wishlist', 'partner', 'avoid_partner', 'prefer', 'avoid']
class PostForm(forms.ModelForm): content = forms.CharField(widget=PagedownWidget()) class Meta: model = Post fields = '__all__' exclude = ( 'published_date', 'created_date', 'slug', ) help_texts = { 'cover_image': 'Please upload a cover image.<br>Otherwise default image will be added to this article', } def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['title'].widget.attrs.update({'class': 'form-control'}) self.fields['author'].widget.attrs.update({'class': 'form-control'}) self.fields['synopsis'].widget.attrs.update({'class': 'form-control'}) self.fields['post_editor'].widget.attrs.update( {'class': 'form-control'}) self.fields['section'].widget.attrs.update({'class': 'form-control'}) self.fields['content'].widget.attrs.update({'class': 'form-control'}) self.fields['cover_image'].widget.attrs.update( {'class': 'form-control-file'})
class PostForm(forms.ModelForm): content = forms.CharField(widget=PagedownWidget(show_preview=False)) publish = forms.DateField(widget=forms.SelectDateWidget) class Meta: model = Post fields = ("title", "content", "image", "draft", "publish")
class AlbumForm(forms.ModelForm): '''A form for Albums''' descripion = forms.CharField(widget=PagedownWidget()) class Meta: model = Album fields = '__all__'
class admission_form(forms.ModelForm): content = forms.CharField(widget=PagedownWidget()) tags = forms.CharField(label='Enter comma separated tags') class Meta: model = admission fields = ['admission_Program', 'title', 'content', 'tags']
class placement_form(forms.ModelForm): content = forms.CharField(widget=PagedownWidget()) tags = forms.CharField(label='Enter comma separated tags') class Meta: model = placement fields = ['Program', 'title', 'content', 'tags']
class MedicalRecordForm(forms.ModelForm): message = forms.CharField(widget=PagedownWidget()) class Meta: model = MedicalRecord fields = ["message", "document"]
class AnswerForm(forms.ModelForm): content = forms.CharField(widget=PagedownWidget( attrs={"show_preview": False})) class Meta: model = AnsweraQuestion fields = ['content']
class ProjectEditForm(ModelForm): description = CharField( widget=PagedownWidget(css=("pagedown/demo/browser/demo.css", "css/pagedown.css")), required=False) class Meta: model = Project fields = ('name', 'description', 'manager', 'developer', 'activity_only_for_managers') widgets = { 'developer': autocomplete.ModelSelect2Multiple('project:userac', attrs={'data-html': 'true'}), 'manager': autocomplete.ModelSelect2Multiple('project:userac', attrs={'data-html': 'true'}) } def save(self, commit=True): before = list(self.instance.get_members()) self.instance = super(ProjectEditForm, self).save() after = list(self.instance.get_members()) diff = [] for user in before: if user not in after: diff.append(user) clear_assignee_follow_m2m_fields_for_users(diff, self.instance) return self.instance
class ArticleFormPerson(forms.ModelForm): title = forms.CharField( required=True, label = u'Title', widget=forms.TextInput( attrs={ 'placeholder':u"Title", 'class':'form-control', } )) content_markdown = forms.CharField( required = True, widget=PagedownWidget( css=('/static/css/markdown-css.css','/static/css/custom.css'), attrs={ 'class':'form-control', } )) content_markup = forms.CharField( widget = forms.HiddenInput( ) ) def clean(self): cleaned_data = super(LoginForm, self).clean() class Meta: model = Article fields = '__all__'
class PostForm(forms.ModelForm): message = forms.CharField(widget=PagedownWidget()) class Meta: model = Post fields = ["title", "message"]
class IndexPage(BasePage): introduction = models.TextField(blank=True) content_panels = BasePage.content_panels + [ FieldPanel('introduction', widget=PagedownWidget()), ] search_fields = BasePage.search_fields + [ index.SearchField('introduction'), ] def get_context(self, request, *args, **kwargs): context = super().get_context(request, *args, **kwargs) subpages = self.get_children().live() per_page = settings.DEFAULT_PER_PAGE page_number = request.GET.get('page') paginator = Paginator(subpages, per_page) try: subpages = paginator.page(page_number) except PageNotAnInteger: subpages = paginator.page(1) except EmptyPage: subpages = paginator.page(paginator.num_pages) context['subpages'] = subpages return context
class ArtistForm(forms.ModelForm): '''A form for Artists''' about = forms.CharField(widget=PagedownWidget()) class Meta: model = Artist fields = '__all__'
class soc_form(forms.ModelForm): content = forms.CharField(widget=PagedownWidget()) tags = forms.CharField(label='Enter comma separated tags') class Meta: model = soc fields = ['title', 'content', 'tags']
class ProposalCommentForm(forms.Form): ''' Used to add comments ''' comment = forms.CharField(widget=PagedownWidget(show_preview=True)) private = forms.BooleanField(required=False, widget=forms.HiddenInput()) reviewer = forms.BooleanField(required=False, widget=forms.HiddenInput())
class PostForm(forms.ModelForm): publish = forms.DateField(widget=forms.SelectDateWidget) content = forms.CharField(widget=PagedownWidget(show_preview=False)) class Meta: model = Post fields = ['title', 'image', 'content', 'draft', 'publish']
class FundIndex(BasePage): subpage_types = ['FundPage'] parent_page_types = ['home.HomePage'] introduction = models.TextField(blank=True) content_panels = BasePage.content_panels + [ FieldPanel('introduction', widget=PagedownWidget()) ] def get_context(self, request, *args, **kwargs): funds = FundPage.objects.live().public().descendant_of(self) # Pagination page = request.GET.get('page', 1) paginator = Paginator(funds, settings.DEFAULT_PER_PAGE) try: funds = paginator.page(page) except PageNotAnInteger: funds = paginator.page(1) except EmptyPage: funds = paginator.page(paginator.num_pages) context = super().get_context(request, *args, **kwargs) context.update(subpages=funds) return context
class PostShortForm(forms.Form): MIN_LEN, MAX_LEN = 10, 10000 parent_uid = forms.CharField(widget=forms.HiddenInput(), min_length=2, max_length=32) content = forms.CharField(widget=PagedownWidget(), min_length=MIN_LEN, max_length=MAX_LEN, strip=False) def __init__(self, user=None, post=None, recaptcha=True, *args, **kwargs): self.user = user self.post = post super().__init__(*args, **kwargs) self.fields['content'].strip = False not_trusted = self.user.is_authenticated and ( not self.user.profile.trusted) # Untrusted users get a recaptcha field if recaptcha and settings.RECAPTCHA_PRIVATE_KEY and not_trusted: self.fields["captcha"] = ReCaptchaField(widget=ReCaptchaWidget()) def clean_content(self): content = self.cleaned_data["content"] return content
class ProjectIndexPage(BasePage): subpage_types = ['ProjectPage'] parent_page_types = ['home.Homepage', 'standardpages.IndexPage'] introduction = models.TextField(blank=True) content_panels = BasePage.content_panels + [ FieldPanel('introduction', widget=PagedownWidget()), ] search_fields = BasePage.search_fields + [ index.SearchField('introduction'), ] def get_context(self, request, *args, **kwargs): context = super().get_context(request, *args, **kwargs) subpages = ProjectPage.objects.descendant_of(self).live().public( ).select_related('icon').order_by('-first_published_at') per_page = settings.DEFAULT_PER_PAGE page_number = request.GET.get('page') paginator = Paginator(subpages, per_page) try: subpages = paginator.page(page_number) except PageNotAnInteger: subpages = paginator.page(1) except EmptyPage: subpages = paginator.page(paginator.num_pages) context['subpages'] = subpages return context
class ComentaryForm(forms.ModelForm): message = forms.CharField(widget=PagedownWidget()) class Meta: model = Commentary fields = ["message"]
class ComplaintForm(forms.ModelForm): description = forms.CharField(widget=PagedownWidget()) class Meta: model = Complaint fields = ["description", "complaint_day", "complaint_time"]
class PostForm(forms.ModelForm): title = forms.CharField(max_length=100) text = forms.CharField(widget=PagedownWidget()) class Meta: model = Post fields = ("title", "text")