aboutsummaryrefslogtreecommitdiffstats
path: root/pyblackbird_cc/resources/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyblackbird_cc/resources/forms.py')
-rw-r--r--pyblackbird_cc/resources/forms.py81
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"})