diff options
Diffstat (limited to 'pyblackbird_cc/resources/forms.py')
-rw-r--r-- | pyblackbird_cc/resources/forms.py | 81 |
1 files changed, 44 insertions, 37 deletions
diff --git a/pyblackbird_cc/resources/forms.py b/pyblackbird_cc/resources/forms.py index 00869be..5327def 100644 --- a/pyblackbird_cc/resources/forms.py +++ b/pyblackbird_cc/resources/forms.py @@ -1,15 +1,19 @@ import logging -from typing import List, Tuple import magic from crispy_forms.bootstrap import FormActions from crispy_forms.helper import FormHelper -from crispy_forms.layout import Submit, Field, Layout, Button +from crispy_forms.layout import Button +from crispy_forms.layout import Field +from crispy_forms.layout import Layout +from crispy_forms.layout import Submit from django import forms -from pyblackbird_cc.resources.models import Resource, ResourceSubcategory +from pyblackbird_cc.resources.models import Resource from pyblackbird_cc.resources.models import ResourceCategory +from pyblackbird_cc.resources.models import ResourceSubcategory from pyblackbird_cc.resources.models import ResourceType + from .models import AGE_RANGE_CHOICES from .models import CURRICULUM_CHOICES @@ -19,10 +23,9 @@ ALLOWED_THUMBNAILS = 5 ALLOWED_PDFS = 20 -def _create_choices_tuple() -> List[Tuple[str, str]]: +def _create_choices_tuple() -> list[tuple[str, str]]: """Returns a list of tuples containing resource subcategory names.""" - return sorted(list(ResourceSubcategory.objects.values_list('name', flat=True)), key=str) - + return sorted(list(ResourceSubcategory.objects.values_list("name", flat=True)), key=str) class ResourceCreateForm(forms.Form): @@ -30,7 +33,7 @@ class ResourceCreateForm(forms.Form): super().__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.add_input(Submit("submit", "Submit")) - self.fields['subcategories'].choices = _create_choices_tuple() + self.fields["subcategories"].choices = _create_choices_tuple() error_css_class = "error" required_css_class = "required" @@ -38,40 +41,42 @@ class ResourceCreateForm(forms.Form): name = forms.CharField( max_length=255, help_text="Concisely describe what the resource is, aiming for" - " in 35-45 characters. " - "eg: 'Fractions KS2 Worksheet and Answers.'", + " in 35-45 characters. " + "eg: 'Fractions KS2 Worksheet and Answers.'", ) description = forms.CharField( max_length=5000, widget=forms.Textarea, help_text=" You can (and should) use <strong>Markdown</strong> here. " - "This is your opportunity to clearly explain what your resource " - "is all " - "about! It’s worth remembering that you are using the space to " - "communicate to two " - "different audiences. Firstly, think about what fellow teachers " - "would like " - "to know, such as exactly what the resource contains and how it " - "could be used in the classroom. Secondly, the words you include " - "on this page are also talking to internal and external search " - "engines." - " External search engines, like Google, show the first 155 characters " - "of the resource description, so make sure you take advantage " - "of these " - "characters by using lots of relevant keywords as part of an " - "enticing pitch.", + "This is your opportunity to clearly explain what your resource " + "is all " + "about! It’s worth remembering that you are using the space to " + "communicate to two " + "different audiences. Firstly, think about what fellow teachers " + "would like " + "to know, such as exactly what the resource contains and how it " + "could be used in the classroom. Secondly, the words you include " + "on this page are also talking to internal and external search " + "engines." + " External search engines, like Google, show the first 155 characters " + "of the resource description, so make sure you take advantage " + "of these " + "characters by using lots of relevant keywords as part of an " + "enticing pitch.", ) card_description = forms.CharField( max_length=1000, widget=forms.Textarea, - help_text=("If you enter text here, it will be used in the 'card' description " - "box on the home page. Max 1000 characters."), + help_text=( + "If you enter text here, it will be used in the 'card' description " + "box on the home page. Max 1000 characters." + ), ) resource_type = forms.ModelChoiceField(queryset=ResourceType.objects.all()) age_range = forms.ChoiceField( choices=AGE_RANGE_CHOICES, help_text="Try to be accurate in your choice of age range so that your resource " - "shows up in the correct searches. (Although we don't have searches yet!)", + "shows up in the correct searches. (Although we don't have searches yet!)", ) curriculum = forms.ChoiceField( choices=CURRICULUM_CHOICES, @@ -80,8 +85,8 @@ class ResourceCreateForm(forms.Form): main_resource_category = forms.ModelChoiceField( queryset=ResourceCategory.objects.all(), help_text="Categorise your resource by subject so it shows up in the correct " - "searches. It's a good idea to limit the number of subjects you select " - "to one or two to make your resource easier to find.", + "searches. It's a good idea to limit the number of subjects you select " + "to one or two to make your resource easier to find.", ) subcategories = forms.MultipleChoiceField( required=False, @@ -110,10 +115,10 @@ class ResourceCreateForm(forms.Form): required=False, label="Cover images", help_text="Your cover image will be displayed in the search results and as " - "the first image on your resource page in the preview function. " - "It is important to add an eye catching cover image that gives " - "other teachers an idea about what your resource contains. " - "You can multi-select up to 5 .png or .jpg files here.", + "the first image on your resource page in the preview function. " + "It is important to add an eye catching cover image that gives " + "other teachers an idea about what your resource contains. " + "You can multi-select up to 5 .png or .jpg files here.", ) pdf_files.widget.attrs.update({"class": "file_upload", "accept": ".pdf"}) thumbnail_files.widget.attrs.update({"class": "file_upload", "accept": ".png,.jpg"}) @@ -121,8 +126,10 @@ class ResourceCreateForm(forms.Form): min_value=1, max_value=3, required=False, - help_text=("Please enter either 1, 2 or 3 here. This will dictate where on the page " - "this resource will feature on the main list page."), + help_text=( + "Please enter either 1, 2 or 3 here. This will dictate where on the page " + "this resource will feature on the main list page." + ), ) def clean_thumbnail_files(self): @@ -159,7 +166,7 @@ class ResourceUpdateMetadataForm(forms.ModelForm): super().__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.add_input(Submit("submit", "Submit")) - self.fields['subcategories'].queryset = ResourceSubcategory.objects.all().order_by('name') + self.fields["subcategories"].queryset = ResourceSubcategory.objects.all().order_by("name") error_css_class = "error" required_css_class = "required" @@ -245,7 +252,7 @@ class ResourceUpdateThumbnailsForm(forms.Form): ), required=False, label="Thumbnail files", - help_text="You can upload 5 files." + help_text="You can upload 5 files.", ) thumbnail_files.widget.attrs.update({"class": "file_upload", "accept": ".png,.jpg"}) |