Further work on multi-file-upload
This commit is contained in:
@ -9,7 +9,10 @@ from crispy_forms.bootstrap import Tab, TabHolder, PrependedText, FormActions
|
||||
from dal import autocomplete
|
||||
from leaflet.forms.widgets import LeafletWidget
|
||||
|
||||
from apps.files.models import File
|
||||
|
||||
from .models import CaseStudy, SpatialRefSys
|
||||
from .widgets import CommaSeparatedTextInput
|
||||
|
||||
|
||||
class MinimumZoomWidget(LeafletWidget):
|
||||
@ -19,13 +22,6 @@ class MinimumZoomWidget(LeafletWidget):
|
||||
class BaseCaseStudyForm(forms.models.ModelForm):
|
||||
"""Base form class for the CaseStudy model."""
|
||||
|
||||
official_project_documents = forms.FileField(
|
||||
widget=forms.ClearableFileInput(attrs={
|
||||
'multiple': True,
|
||||
'data-url': reverse_lazy('files:upload'),
|
||||
})
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(BaseCaseStudyForm, self).__init__(*args, **kwargs)
|
||||
self.helper = FormHelper(self)
|
||||
@ -48,13 +44,6 @@ class BaseCaseStudyForm(forms.models.ModelForm):
|
||||
}),
|
||||
}
|
||||
|
||||
class Media:
|
||||
js = (
|
||||
'files/jquery.ui.widget.js',
|
||||
'files/jquery.iframe-transport.js',
|
||||
'files/jquery.fileupload.js'
|
||||
)
|
||||
|
||||
|
||||
class ShortCaseStudyForm(BaseCaseStudyForm):
|
||||
"""Short version of the CaseStudy form."""
|
||||
@ -95,6 +84,51 @@ class ShortCaseStudyForm(BaseCaseStudyForm):
|
||||
class LongCaseStudyForm(BaseCaseStudyForm):
|
||||
"""Long version of the CaseStudy form."""
|
||||
|
||||
official_project_documents = forms.FileField(
|
||||
widget=forms.ClearableFileInput(attrs={
|
||||
'multiple': True,
|
||||
'data-url': reverse_lazy('files:upload'),
|
||||
'data-field': 'official_project_documents_files',
|
||||
'class': 'fileupload',
|
||||
}), required=False
|
||||
)
|
||||
|
||||
official_project_documents_files = forms.ModelMultipleChoiceField(
|
||||
queryset=File.objects.all(),
|
||||
widget=CommaSeparatedTextInput(),
|
||||
required=False
|
||||
)
|
||||
|
||||
other_documents = forms.FileField(
|
||||
widget=forms.ClearableFileInput(attrs={
|
||||
'multiple': True,
|
||||
'data-url': reverse_lazy('files:upload'),
|
||||
'data-field': 'other_documents_files',
|
||||
'class': 'fileupload',
|
||||
}), required=False
|
||||
)
|
||||
|
||||
other_documents_files = forms.ModelMultipleChoiceField(
|
||||
queryset=File.objects.all(),
|
||||
widget=CommaSeparatedTextInput(),
|
||||
required=False
|
||||
)
|
||||
|
||||
shapefiles = forms.FileField(
|
||||
widget=forms.ClearableFileInput(attrs={
|
||||
'multiple': True,
|
||||
'data-url': reverse_lazy('files:upload'),
|
||||
'data-field': 'shapefiles_files',
|
||||
'class': 'fileupload',
|
||||
}), required=False
|
||||
)
|
||||
|
||||
shapefiles_files = forms.ModelMultipleChoiceField(
|
||||
queryset=File.objects.all(),
|
||||
widget=CommaSeparatedTextInput(),
|
||||
required=False
|
||||
)
|
||||
|
||||
coordinate_reference_system = forms.ModelChoiceField(
|
||||
queryset=SpatialRefSys.objects.all(),
|
||||
widget=autocomplete.ModelSelect2(url='srs-autocomplete'),
|
||||
@ -288,8 +322,11 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
||||
Tab(
|
||||
_("Uploads"),
|
||||
'official_project_documents',
|
||||
'official_project_documents_files',
|
||||
'other_documents',
|
||||
'other_documents_files',
|
||||
'shapefiles',
|
||||
'shapefiles_files',
|
||||
'coordinate_reference_system',
|
||||
'name_of_territory_or_area',
|
||||
'shown_on_other_platforms',
|
||||
@ -302,3 +339,11 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
||||
|
||||
class Meta(BaseCaseStudyForm.Meta):
|
||||
exclude = ('approved',)
|
||||
|
||||
class Media:
|
||||
js = (
|
||||
'files/jquery.ui.widget.js',
|
||||
'files/jquery.iframe-transport.js',
|
||||
'files/jquery.fileupload.js',
|
||||
'files/upload.js',
|
||||
)
|
||||
|
Reference in New Issue
Block a user