Exemplo n.º 1
0
class UploadForm(forms.Form):
    Documents = MultiFileField(min_num=1, max_num=3)

    # If you need to files media files, you can use this:
    Documents = MultiFileField(
        min_num=1,
        max_num=1000,
        # max_file_size=1024*1024*5,
    )
Exemplo n.º 2
0
    def test_field_not_required(self):
        """ Field should be valid if empty and not required """
        field = MultiFileField(min_num=2, max_num=4, required=False)

        try:
            field.clean('')
            field.clean(None)
            field.clean({})
            field.clean(tuple())
        except forms.ValidationError:
            self.fail('Field should not be required')
Exemplo n.º 3
0
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')
Exemplo n.º 4
0
class PostFormEdit(forms.ModelForm):
    postcategory = forms.MultipleChoiceField(
        choices=CATEGORY_CHOICES,
        required=True,
        widget=forms.CheckboxSelectMultiple
    )
    image_file = forms.FileField(required=False)
    postimage = MultiFileField(min_num=1, required=False)
    postimagesmall = MultiFileField(min_num=1, required=False)

    class Meta:
        model = Post
        fields = ('title', 'postcategory', 'status', 'published_date', 'image_file', 'content', 'postimage', 'postimagesmall')
Exemplo n.º 5
0
    def test_field_not_required(self):
        """ Field should be valid if empty and not required """
        field = MultiFileField(min_num=2, max_num=4, required=False)

        try:
            field.clean('')
            field.clean(None)
            field.clean({})
            field.clean(tuple())
        except forms.ValidationError:
            self.fail('Field should not be required')
Exemplo n.º 6
0
class EMailFormMG(forms.Form):
    """Docstring"""
    def __init__(self, *args, **kwargs):
        user = kwargs.pop('user', None)
        super(EMailFormMG, self).__init__(*args, **kwargs)
        if not user.is_superuser:
            self.fields['group'].queryset = user.groups.all()

    group = forms.ModelChoiceField(queryset=Group.objects.all(),
                                   label=_("Gruppe"))
    name = forms.CharField(label=_("Von (Name)"), max_length=50)
    sender = forms.EmailField(label=_("Von (Email)"))
    tag = forms.CharField(max_length=100, label=_("Tag"))
    subject = forms.CharField(max_length=100, label=_("Betreff"))
    img_url = forms.URLField(required=False, label=_("Header"))
    remove_points = forms.IntegerField(label=_("Punktabzug"))
    open_points = forms.IntegerField(label=_("Öffnungspunkte"))
    click_points = forms.IntegerField(label=_("Klickpunkte"))
    message = forms.CharField(widget=TinyMCE())
    template = forms.ModelChoiceField(queryset=MailTemplate.objects.all(),
                                      label=_("Template"))
    attachement = MultiFileField(min_num=1,
                                 max_num=6,
                                 max_file_size=1024**3 * 5,
                                 required=False,
                                 label="Anhänge")
Exemplo n.º 7
0
class OnlineAttachmentForm(forms.Form):
    sender_name = forms.CharField(
        label=_("Your Name"),
        widget=forms.TextInput(attrs={
            "class": "form-control",
            "placeholder": _("Your Name")
        }),
        required=True)
    sender_email = forms.EmailField(
        label=_("Contact Email"),
        required=True,
        max_length=230,
        widget=forms.TextInput(attrs={
            "class": "form-control",
            "placeholder": _("Email address")
        }))
    text = forms.CharField(
        label=_("Remarks"),
        widget=forms.Textarea(
            attrs={
                "placeholder": _("Information, remarks about the documents"),
                "class": "form-control"
            }),
        required=False)
    documents = MultiFileField(
        label=_("Requested documents"),
        help_text=_("You can add multiple documents at the same time."),
        min_num=1)
Exemplo n.º 8
0
class CompanyEditForm(forms.Form):
    name = forms.CharField(max_length=255,required=True)
    logo = forms.ImageField(required=False)
    cover_photo = forms.ImageField(required=False)
    slogan = forms.CharField(max_length=255,required=True)
    # is_active = forms.BooleanField(required=False)
    email = forms.EmailField()
    phones = forms.CharField(max_length=255,required=True)
    voen = forms.CharField(max_length=255,required=True)
    bank_account = forms.CharField(max_length=255,required=True)
    attachments = MultiFileField(min_num=1, max_num=7, max_file_size=1024*1024*5,required=False)
    region = forms.ChoiceField(choices=[], required=True)
    address = forms.CharField(max_length=255,required=True)
    businnes_type = forms.MultipleChoiceField(choices=[], required=True)
    businnes_types_parent = forms.MultipleChoiceField(choices=[],required=False)
    position = GeopositionField()
    practices = forms.CharField(widget=forms.Textarea,required=False)
    def __init__(self,*args, **kwargs):
        super(CompanyEditForm, self).__init__(*args, **kwargs)
        self.user = kwargs.pop('user', None)
        print(self.user)
        regions_obj = Region.objects.filter()
        businnes_types_obj = Businnes.objects.filter(active=True).filter(parent=None)
        businnes_types_parent = Businnes.objects.exclude(parent=None).filter(active=True)
        self.fields['businnes_types_parent'].choices = [[x.id, x.name] for x in businnes_types_parent]
        self.fields['region'].choices = [[x.id, x.name] for x in regions_obj]
        self.fields['businnes_type'].choices = [[x.id, x.name] for x in businnes_types_obj]
Exemplo n.º 9
0
class CustomerForm(forms.ModelForm):
    c_id = forms.CharField(label="", widget=forms.TextInput(attrs={'placeholder': 'Customer ID', 'class':'form-control mb-4','title':'Enter Only Numeric values','pattern':'[0-9]+'}))
    c_name = forms.CharField(label="", widget=forms.TextInput(attrs={'placeholder': 'Customer Name', 'class':'form-control mb-4','pattern':'[A-Za-z ]+','title':'Enter Characters Only'}))
    #image = forms.FileField(label="")

    class Meta:
        model = CustomerDetails
        fields = ('c_name', 'c_id') #'image', )

    files = MultiFileField(min_num=1, max_num=5, max_file_size=1024 * 1024 * 5)

    def save(self, commit=True):
        instance = super(CustomerForm, self).save(commit)
        for each in self.cleaned_data['files']:
            Attachment.objects.create(file=each, customerdetails=instance)
        return instance

    def clean(self):
        cleaned_data = self.cleaned_data
        uid = cleaned_data.get('c_id')
        matching_id = CustomerDetails.objects.filter(c_id = uid)
        if self.instance:
            matching_id = matching_id.exclude(pk=self.instance.pk)
        if matching_id.exists():
            msg = u"User ID: %s already exist." % uid
            raise forms.ValidationError(msg)
        else:
            return self.cleaned_data
Exemplo n.º 10
0
class ApplyForm(forms.ModelForm):
    attachments = MultiFileField(
        label="Обоснование проекта, резюме, смета, рекомендации",
        min_num=1,
        max_num=5)
    email = forms.EmailField(required=True)

    def __init__(self, *args, **kwargs):
        super(ApplyForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.helper.form_method = 'POST'
        self.helper.layout = Layout(
            Fieldset(
                "Вы можете отправить заявку на адрес <a scr='mailto:[email protected]'>[email protected]</a> или воспользовавшись формой:",
                'second_name', 'first_name', 'email',
                HTML("""
        <p>Пожалуйста, используйте текстовые форматы (rtf, doc/docx, odt). Вы можете отправить файлы по отдельности или объединить их в несколько документов (файл с Вашим проектом желательно оставить анонимным).</p>
        """),
                Field('attachments',
                      css_class='file',
                      type='file',
                      data_show_upload="false"), HTML("{% csrf_token %}"),
                FormActions(
                    Submit('purchase',
                           'ОТПРАВИТЬ',
                           css_class='btn-primary btn-block'))))

    class Meta:
        model = Apply
        fields = [
            "first_name",
            "second_name",
            "email",
            "attachments",
        ]
Exemplo n.º 11
0
class AttachmentForm(forms.Form):

    MINIMUM_ATTACHEMENTS = app_settings.MINIMUM_ATTACHEMENTS_PER_COMMENT
    MAXIMUM_ATTACHEMENTS = app_settings.MAXIMUM_ATTACHEMENTS_PER_COMMENT
    MAXIMUM_FILE_SIZE = app_settings.MAXIMUM_FILE_SIZE_PER_ATTACHEMENTS

    if MINIMUM_ATTACHEMENTS != 0:
        if MINIMUM_ATTACHEMENTS != MAXIMUM_ATTACHEMENTS:
            ATTACHMENTS_HELP_TEXT = _('Between %s and %s files') % (
                MINIMUM_ATTACHEMENTS, MAXIMUM_ATTACHEMENTS)

        else:
            ATTACHMENTS_HELP_TEXT = _(
                'Maximum %s files') % MAXIMUM_ATTACHEMENTS

    else:
        ATTACHMENTS_HELP_TEXT = _('Maximum %s files') % MAXIMUM_ATTACHEMENTS

    ATTACHMENTS_HELP_TEXT += " " + _('(under <%s each)') % filesizeformat(
        MAXIMUM_FILE_SIZE)

    attachments = MultiFileField(
        min_num=MINIMUM_ATTACHEMENTS,
        max_num=MAXIMUM_ATTACHEMENTS,
        max_file_size=app_settings.MAXIMUM_FILE_SIZE_PER_ATTACHEMENTS,
        help_text=ATTACHMENTS_HELP_TEXT)

    def __init__(self, *args, **kwargs):
        super(AttachmentForm, self).__init__(*args, **kwargs)

        self.fields['attachments'].required = self.MINIMUM_ATTACHEMENTS > 0
Exemplo n.º 12
0
class AdverForm(forms.ModelForm):

    # def __init__(self, *args, **kwargs):
    #
    #     user = kwargs.pop('user')
    #     super(AdverForm, self).__init__(*args, **kwargs)
    #     print(user.userprofiletable_set.get().adress_state)
    #
    #     state = user.userprofiletable_set.get().adress_state
    #     city = user.userprofiletable_set.get().adress_city
    #
    #
    #     if state and city:
    #         self.fields['state'].initial = state
    #         self.fields['city'].initial = city

    class Meta:
        model = Goods
        fields = ('category', 'subcategory', 'types', 'name', 'description',
                  'price', 'state', 'city')
        # exclude = ['user','is_active','creation_date','is_sell']

    files = MultiFileField(max_num=10,
                           max_file_size=4024 * 4024 * 5,
                           required=False,
                           label='Фото')

    def save(self, commit=True):
        instance = super(AdverForm, self).save(commit)
        for each in self.cleaned_data['files']:
            GoodsImageGallery.objects.create(file=each,
                                             good=instance,
                                             user=instance.user)

        return instance
Exemplo n.º 13
0
class MultiUploadForm(forms.ModelForm):

    file = MultiFileField(min_num=1, max_num=4, max_file_size=1024 * 1024 * 5)

    class Meta:
        exclude = ('story',)
        model = Images
Exemplo n.º 14
0
class VotaInteligenteAnswerForm(ModelForm):
    class Meta:
        model = VotaInteligenteAnswer
        labels = {
            'content': _(u'Réponse'),
        }
        widgets = {
            'content': forms.Textarea(
                attrs={'class': 'form-control center-block', 'cols': '25', 'rows':'8', 'style': 'width:100%;'}),
            'message': forms.HiddenInput(),
            'person': forms.HiddenInput()
        }

    files = MultiFileField(min_num=0, max_num=3, required=False, max_file_size=1024*1024*5, label= 'Fichiers joints:')

    def save(self, commit=True):
        instance = super(VotaInteligenteAnswerForm, self).save(commit)
        message = self.cleaned_data['message']

        for each in self.cleaned_data['files']:
            attachment = Attachment.objects.create()
            attachment.modelName = 'answer'
            attachment.file = each
            attachment.messageId = message
            attachment.author_id = instance.person_id
            attachment.save()

        return instance
Exemplo n.º 15
0
Arquivo: forms.py Projeto: oromay/Alog
class ApplyForm(forms.ModelForm):
    attachments = MultiFileField(label = "Обоснование проекта, резюме, смета, рекомендации (максмум - 5 файлов)", min_num=1, max_num=5)
    email = forms.EmailField(required=True)
    def __init__(self, *args, **kwargs):
        super(ApplyForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.helper.form_method = 'POST'
        self.helper.layout = Layout(Fieldset(
        "Отправте заявку, воспользовавшись формой:",
        'second_name',
        'first_name',
        'email',
        HTML("""
        <p>Пожалуйста, используйте текстовой формат для файла проекта (rtf, doc, docx, odt)</p>
        """),
        Field('attachments', css_class='file', type='file', data_show_upload="false", data_show_preview="false", data_msg_placeholder="Выбирите файлы для загрузки"), HTML("{% csrf_token %}"),
        FormActions(Submit('purchase', 'ОТПРАВИТЬ', css_class='btn-primary btn-block'))
        ))
    class Meta:
        model = Apply
        fields = [
        "first_name",
        "second_name",
        "email",
        "attachments",
        ]
Exemplo n.º 16
0
class UploadTestForm(forms.Form):
    """ Representing the test Django form. """

    attachments = MultiFileField(
        min_num=1,
        max_num=3,
        max_file_size=1024*1024*5
    )
Exemplo n.º 17
0
class UploadFileForm(forms.Form):
    """Form for uploading files"""
    upfile = MultiFileField(
        min_num=1,
        max_num=24,
        max_file_size=1014*1024*24,
        label='Activity file',
        error_messages={'required': ERROR_NO_UPLOAD_FILE_SELECTED}
    )
Exemplo n.º 18
0
class UploadForm(forms.Form):
    # attachments = MultiFileField(min_num=1, max_num=500, max_file_size=1024*1024*5)
    attachments = MultiFileField(min_num=1, max_num=500)

    class Meta:
        model = Attachment
        fields = (
        'photobatch',
        )
Exemplo n.º 19
0
class VariableInputForm(forms.Form):
    """
    The VariableInputForm class is a form for users re-submission.
    A number of fields are required from user to select or upload.
    **selected_peaks** - selected peaks from the datatables (peaks from database chosen for analysis).
    **new_peak_File** - (optional) user's peak file upload field where it can be 1 or more files.
    **cut_off** - a threshold cut off to determine proximal and distal.
    **heatmap** - an option to generate heatmap axis ordering. 
            (
                Independent: proximal and distal each separately show clustering.
                Follow prioximal: distal will not cluster and distal heatmap axis ordering will follow proximal heatmap axis ordering.
                Follow distal: proximal will not cluster and proximal heatmap axis ordering will follow distal heatmap axis ordering.
            )
    """
    selected_peaks = forms.CharField(widget=forms.Textarea(
        attrs={
            'readonly': 'readonly',
            'rows': 6,
            'cols': 22,
            'style': 'resize:none;'
        }))

    # uploaded peak files from user
    USERPEAK_CHOICES = ()
    uploaded_peak_File = forms.MultipleChoiceField(choices=USERPEAK_CHOICES,
                                                   required=False)
    new_peak_File = MultiFileField(
        min_num=0,
        required=False,
        label='Upload custom peak file',
        help_text='File must be in the form of <br /> chrNum\tstart\tend')

    path = os.path.join(settings.STATIC_ROOT, 'csv', 'cutoffs.csv')
    with open(path, 'rb') as csvfile:
        reader = csv.reader(csvfile)
        cutoff_list = map(tuple, reader)
    cutoff_tuple = tuple(cutoff_list)
    CUTOFF_CHOICES = cutoff_tuple
    cut_off = forms.ChoiceField(
        choices=CUTOFF_CHOICES,
        required=True,
        help_text='Threshold to separate proximal and distal elements')

    PLOT_CHOICES = (('Independent', 'Independent'),
                    ('Follow proximal', 'Follow proximal'), ('Follow distal',
                                                             'Follow distal'))
    heatmap = forms.ChoiceField(
        choices=PLOT_CHOICES,
        required=True,
        label='Heatmaps clustering',
        help_text=
        'Option to cluster the proximal and distal heatmaps independently or based on one of the heatmap'
    )

    pvalue = forms.FloatField(label="P-Value cut off",
                              max_value=1,
                              min_value=0)
Exemplo n.º 20
0
class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('title', 'text', 'video')

    files = MultiFileField(min_num=0,
                           max_num=10,
                           max_file_size=1024 * 1024 * 5,
                           required=False)
Exemplo n.º 21
0
class SocialPostForm(forms.ModelForm):
    text = forms.CharField(widget=forms.Textarea, label='')
    attachments = MultiFileField(required=False,
                                 max_num=10,
                                 max_file_size=1024 * 1024 * 25,
                                 label='')

    class Meta:
        model = SocialPost
        fields = ['text']
Exemplo n.º 22
0
class UploadFormMulti(forms.Form):
    # NOTE Max size right now: 10MB
    maxsize = 10 * 1024 * 1024
    attachments = MultiFileField(min_num=1, max_num=100, max_file_size=maxsize)

    def save(self, commit=True):
        instance = super(ContactForm, self).save(commit)
        for each in self.cleaned_data['files']:
            Attachment.objects.create(file=each, data=instance)
        return instance
Exemplo n.º 23
0
class UploadPhotosAdminForm(forms.ModelForm):

    album = forms.ModelChoiceField(
        label=_("Album"), required=True, queryset=Album.objects.all())

    images = MultiFileField(label=_('Images'), max_num=100, min_num=1)

    class Meta:
        model = Photo
        exclude = ['order', 'file']
class FileUploadForm(forms.Form):
    file = MultiFileField(max_file_size=1000000 * getattr(
        settings, 'CRADMIN_TEMPORARYFILEUPLOADSTORE_MAX_FILE_SIZE_MB', 1000))
    collectionid = forms.IntegerField(required=False)
    minutes_to_live = forms.IntegerField(min_value=1, required=False)
    singlemode = forms.BooleanField(required=False)
    accept = forms.CharField(required=False)
    max_filename_length = forms.IntegerField(min_value=0, required=False)
    max_filesize_bytes = forms.IntegerField(min_value=0, required=False)
    unique_filenames = forms.BooleanField(required=False)
Exemplo n.º 25
0
class MultiUploadForm2(forms.ModelForm):
    file = MultiFileField(min_num=1, max_num=4, max_file_size=1024 * 1024 * 5)

    class Meta:
        exclude = ('story', 'description')
        model = Image

    labels = {
        'file': '*Images',
    }
Exemplo n.º 26
0
class TicketSubmissionForm(forms.Form):
    subject = forms.CharField(max_length=100)
    description = forms.CharField(
        widget=forms.Textarea,
        label="Please describe your problem or request in detail.")
    attachments = MultiFileField(max_file_size=1024 * 1024 * 20,
                                 required=False)  # 20 MB limit

    class Meta:
        layout = [("Field", "subject"), ("Field", "description"),
                  ("Field", "attachments")]
Exemplo n.º 27
0
class GridForm(forms.Form):
    param_input_file = forms.FileField(label="Input file (.in)",
                                       help_text="Please set receptor_file and box_file parameters to ./[filename]<br>"
                                                 "Please set vdw_definition_file parameter to /mirror/dock6/parameters/[vdw_definition_file]",
                                       validators=[dock6_in_extension_validator])
    param_other_files = MultiFileField(label="Other input resources", help_text="These are files specified in your (.in) input file.<br>File types: (.pdb, .mol2)", min_num=1,
                                       validators=[multi_grid_other_resources_validator])
    param_output_prefix = forms.CharField(required=False, label="Output file prefix",
                                          help_text="If specified, the output file will be named as [output_prefix].out",
                                          widget=forms.TextInput(attrs={'placeholder': 'output_prefix'}))
    param_terse = forms.BooleanField(required=False, label="-t",
                                     help_text='Terse program output')
    param_verbose = forms.BooleanField(required=False, label="-v",
                                       help_text="Verbose program output")

    def clean_param_output_prefix(self):
        output_prefix = self.cleaned_data['param_output_prefix']
        return get_valid_filename(output_prefix)

    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user')
        super(GridForm, self).__init__(*args, **kwargs)
        toolset = ToolSet.objects.get(p2ctool_name="dock6")

        self.fields['mpi_cluster'] = MPIModelChoiceField(queryset=get_mpi_queryset_for_task_submission(self.user), label="MPI Cluster",
                                                         toolset=toolset,
                                                         help_text="Getting an empty list? Try <a href='{0}'>creating an MPI Cluster</a> first.".format(
                                                             reverse('create_mpi')))

        self.helper = FormHelper()
        self.helper.form_tag = False
        self.helper.layout = Layout(  # crispy_forms layout

            Field('mpi_cluster', wrapper_class='col-xs-12'),
            Fieldset(
                'Input',
                Field('param_input_file', wrapper_class='col-xs-12'),
                Field('param_other_files', wrapper_class='col-xs-12 col-md-8'),
                css_class='col-xs-12'
            ),
            Fieldset(
                'Output',
                AppendedText('param_output_prefix', '.out', wrapper_class='col-xs-12 col-md-8'),
                css_class='col-xs-12'
            ),
            Fieldset(
                'Other parameters',
                Field('param_terse', wrapper_class='col-xs-12'),
                Field('param_verbose', wrapper_class='col-xs-12'),
                css_class=' col-xs-12'
            )

        )
Exemplo n.º 28
0
class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = (
            'author',
            'text',
        )

    files = MultiFileField(min_num=1,
                           max_num=1,
                           max_file_size=1024 * 1024 * 5,
                           required=False)
Exemplo n.º 29
0
class RecetteForm(forms.ModelForm):
    required_css_class = 'required'
    class Meta:
        model = Recette
        fields = ['titre', 'type', 'difficulte', 'cout', 'temps_prepa', 'temps_cuisson', 'temps_repos','ingredients','etape']

    files = MultiFileField(min_num=1, max_num=3, max_file_size=1024 * 1024 * 5)
    def save(self, commit=True):
         instance = super(RecetteForm, self).save(commit)
         for each in self.cleaned_data['files']:
             RecetteImage.objects.create(file=each, recette=instance)

         return instance
Exemplo n.º 30
0
class ContactForm(forms.ModelForm):
    class Meta:
        model = Message
        fields = ['author_name', 'author_email', 'content']  # not attachments!

    files = MultiFileField(min_num=1, max_num=3, max_file_size=1024 * 1024 * 5)

    def save(self, commit=True):
        instance = super(ContactForm, self).save(commit)
        for each in self.cleaned_data['files']:
            Attachment.objects.create(file=each, message=instance)

        return instance
Exemplo n.º 31
0
class UploadForm(forms.Form):
	attachments = MultiFileField(min_num = 1, max_num=50, max_file_size=1024*1024*5)
	class Meta:
		model = ExperimentFile

	def as_p(self):
	#"Returns this form rendered as HTML <p>s."
		return self._html_output(
			normal_row = u'<p%(html_class_attr)s>%(label)s</p> &nbsp &nbsp &nbsp &nbsp %(field)s%(help_text)s<br></br>',
			error_row = u'%s',
			row_ender = '</p>',
			help_text_html = u' <span class="helptext">%s</span>',
			errors_on_separate_row = True)