diff --git a/.gitignore b/.gitignore index a5cc6aa..d61d1da 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ database.db common/local_settings.py scripts/epcstages.json -.idea/* +.idea/*.* diff --git a/common/urls.py b/common/urls.py index e0a6b33..10ac1e0 100644 --- a/common/urls.py +++ b/common/urls.py @@ -14,6 +14,7 @@ urlpatterns = [ url(r'^attribution/$', views.AttributionView.as_view(), name='attribution'), url(r'^stages/export/(?Pall)?/?$', views.stages_export, name='stages_export'), + url(r'^imputations/export/$', views.imputations_export, name='imputations_export'), url(r'^institutions/$', views.CorporationListView.as_view(), name='corporations'), url(r'^institutions/(?P\d+)/$', views.CorporationView.as_view(), name='corporation'), diff --git a/media/img/header.gif b/media/img/header.gif new file mode 100644 index 0000000..a02c592 Binary files /dev/null and b/media/img/header.gif differ diff --git a/stages/admin.py b/stages/admin.py index c4c5821..02a9d21 100644 --- a/stages/admin.py +++ b/stages/admin.py @@ -352,6 +352,7 @@ class CandidateAdmin(admin.ModelAdmin): }), ) + admin.site.register(Section) admin.site.register(Level) admin.site.register(Klass, KlassAdmin) diff --git a/stages/models.py b/stages/models.py index 2fb5b20..fd94503 100644 --- a/stages/models.py +++ b/stages/models.py @@ -5,7 +5,7 @@ from datetime import date, timedelta from django.conf import settings from django.db import models - +from collections import OrderedDict from . import utils @@ -408,9 +408,10 @@ class Course(models.Model): public = models.CharField("Classe(s)", max_length=200, default='') subject = models.CharField("Sujet", max_length=100, default='') + period = models.IntegerField("Nb de périodes", default=0) # Imputation comptable: compte dans lequel les frais du cours seront imputés - imputation = models.CharField("Imputation", max_length=10, choices=IMPUTATION_CHOICES) + imputation = models.CharField("Imputation", max_length=10, default='', blank=True) class Meta: verbose_name = 'Cours' diff --git a/stages/pdf.py b/stages/pdf.py index 2bca1fb..e0628d1 100644 --- a/stages/pdf.py +++ b/stages/pdf.py @@ -186,3 +186,4 @@ class UpdateDataFormPDF(SimpleDocTemplate): def is_instr_required(self, klass_name): return any(el in klass_name for el in ['FE', 'EDS']) + diff --git a/stages/views.py b/stages/views.py index 8fbd3ee..0f5602d 100644 --- a/stages/views.py +++ b/stages/views.py @@ -399,6 +399,7 @@ class HPImportView(ImportViewBase): 'NOMPERSO_DIP': 'public', 'TOTAL': 'period', } + # Mapping between klass field and imputation account_categories = { 'ASAFE': 'ASAFE', @@ -438,14 +439,15 @@ class HPImportView(ImportViewBase): } obj, created = Course.objects.get_or_create( - teacher=defaults['teacher'], - subject=defaults['subject'], - public=defaults['public']) + teacher = defaults['teacher'], + subject = defaults['subject'], + public = defaults['public']) period = int(float(line['TOTAL'])) if created: obj.period = period obj_created += 1 + for k, v in self.account_categories.items(): if k in obj.public: obj.imputation = v @@ -553,6 +555,12 @@ EXPORT_FIELDS = [ ('Courriel contact - copie', None), ] +IMPUTATIONS_EXPORT_FIELDS = [ + 'Nom', 'Prénom', 'Report passé', 'Ens', 'Discipline', \ + 'Accomp.', 'Discipline', 'Total payé', 'Indice', 'Taux', 'Report futur', \ + 'ASA', 'ASSC', 'ASE', 'MP', 'EDEpe', 'EDEps', 'EDS', 'CAS-FPP', 'Direction' +] + NON_ATTR_EXPORT_FIELDS = [ ('Filière', 'period__section__name'), @@ -660,13 +668,6 @@ def stages_export(request, scope=None): return response -IMPUTATIONS_EXPORT_FIELDS = [ - 'Nom', 'Prénom', 'Report passé', 'Ens', 'Discipline', - 'Accomp.', 'Discipline', 'Total payé', 'Indice', 'Taux', 'Report futur', - 'ASA', 'ASSC', 'ASE', 'MP', 'EDEpe', 'EDEps', 'EDS', 'CAS_FPP', 'Direction' -] - - def imputations_export(request): wb = Workbook() ws = wb.active @@ -690,6 +691,7 @@ def imputations_export(request): ws.cell(row=row_idx, column=9).value = 'Charge globale' ws.cell(row=row_idx, column=10).value = '{0:.2f}'.format(activities['tot_paye']/21.50) ws.cell(row=row_idx, column=11).value = teacher.next_report + col_idx = 12 for k, v in imputations.items(): ws.cell(row=row_idx, column=col_idx).value = v @@ -860,4 +862,5 @@ def ortra_export(request): response = HttpResponse(save_virtual_workbook(wb), content_type=openxml_contenttype) response['Content-Disposition'] = 'attachment; filename=%s%s.xlsx' % ( 'ortra_export_', date.strftime(date.today(), '%Y-%m-%d')) - return response \ No newline at end of file + return response +