Skip to content
Snippets Groups Projects

Draft: CSV export

Open Jonathan Weth requested to merge csv-export into master
1 file
+ 1
2
Compare changes
  • Side-by-side
  • Inline
@@ -6,7 +6,7 @@ from django.utils.translation import gettext_lazy as _
from ruamel.yaml import YAML, YAMLError
from aleksis.apps.csv_import.models import ImportTemplate
from aleksis.apps.csv_import.models import CSVTemplate
from aleksis.core.models import SchoolTerm
@@ -16,9 +16,7 @@ class CSVUploadForm(forms.Form):
queryset=SchoolTerm.objects.all(),
label=_("Related school term"),
)
template = forms.ModelChoiceField(
queryset=ImportTemplate.objects.all(), label=_("Import template")
)
template = forms.ModelChoiceField(queryset=CSVTemplate.objects.all(), label=_("CSV template"))
create = forms.BooleanField(
initial=True, label=_("Create new objects if necessary"), required=False
)
@@ -32,7 +30,22 @@ class CSVUploadForm(forms.Form):
super().__init__(*args, **kwargs)
class ImportTemplateUploadForm(forms.Form):
class CSVExportForm(forms.Form):
school_term = forms.ModelChoiceField(
queryset=SchoolTerm.objects.all(), label=_("Related school term"), required=False
)
template = forms.ModelChoiceField(queryset=CSVTemplate.objects.all(), label=_("CSV template"))
def __init__(self, *args, **kwargs):
try:
school_terms = SchoolTerm.objects.on_day(timezone.now().date())
kwargs["initial"] = {"school_term": school_terms[0] if school_terms.exists() else None}
except SchoolTerm.DoesNotExist:
pass
super().__init__(*args, **kwargs)
class CSVTemplateUploadForm(forms.Form):
template = forms.FileField(
label=_("CSV template"), validators=[FileExtensionValidator(["yml", "yaml"])]
)
@@ -44,7 +57,7 @@ class ImportTemplateUploadForm(forms.Form):
yaml = YAML(typ="safe")
template_defs = yaml.load(file)
default_template_names = ImportTemplate.objects.filter(from_default=True).values_list(
default_template_names = CSVTemplate.objects.filter(from_default=True).values_list(
"name", flat=True
)
if set(template_defs.keys()) & set(default_template_names):
Loading