From a4b8f41851a1fea31ea73d4da60747463ad079bb Mon Sep 17 00:00:00 2001 From: Ambulance Clerc Date: Fri, 11 Aug 2023 17:23:46 +0200 Subject: [PATCH] =?UTF-8?q?Init=20et=20d=C3=A9finitions=20du=20models.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- studenteval/__init__.py | 0 studenteval/admin.py | 5 ++ studenteval/apps.py | 7 +++ studenteval/models.py | 100 ++++++++++++++++++++++++++++++++++++++++ studenteval/tests.py | 3 ++ studenteval/urls.py | 17 +++++++ studenteval/views.py | 3 ++ 7 files changed, 135 insertions(+) create mode 100644 studenteval/__init__.py create mode 100644 studenteval/admin.py create mode 100644 studenteval/apps.py create mode 100644 studenteval/models.py create mode 100644 studenteval/tests.py create mode 100644 studenteval/urls.py create mode 100644 studenteval/views.py diff --git a/studenteval/__init__.py b/studenteval/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/studenteval/admin.py b/studenteval/admin.py new file mode 100644 index 0000000..32ec25f --- /dev/null +++ b/studenteval/admin.py @@ -0,0 +1,5 @@ +from django.contrib import admin +from studenteval.models import cl_Student_eval + +# Register your models here. +admin.site.register(cl_Student_eval) \ No newline at end of file diff --git a/studenteval/apps.py b/studenteval/apps.py new file mode 100644 index 0000000..038e850 --- /dev/null +++ b/studenteval/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class StudentevalConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'studenteval' + verbose_name = "Suivi étudiants - stagiaires" diff --git a/studenteval/models.py b/studenteval/models.py new file mode 100644 index 0000000..1f3055a --- /dev/null +++ b/studenteval/models.py @@ -0,0 +1,100 @@ +from django.db import models +from django.conf import settings +from django.utils import timezone +import uuid + +EVAL_TYPE = [ + ('1', 'Intervention'), + ('2', 'Journée'), +] +INTER_NATURE = [ + ('1', 'Trauma'), + ('2', 'non-Trauma'), +] +INTER_PRIORITY = [ + ('1', 'P1'), + ('2', 'P2'), + ('3', 'P3'), + ('4', 'S1'), + ('5', 'S2'), + ('6', 'S3'), + ('7', 'Exercice'), +] +INTER_COMPLEXITY = [ + ('1', 'Stable / Simple'), + ('2', 'Stable / Complexe'), + ('3', 'Instable / Simple'), + ('4', 'Instable / Complexe'), +] + +STUDENT_ROLE = [ + ('1', 'Leader'), + ('2', 'Équipier'), + ('3', '3e position (observateur'), +] + +EVAL_MODE = [ + ('1', 'Auto-évaluation'), + ('2', 'Ecadrant'), +] + +class cl_Student_eval(models.Model): + uuid = models.UUIDField(default=uuid.uuid4(), editable=False, primary_key=True) + + # Informations sur l'auteur + Author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name="Auteur", on_delete=models.SET_NULL, null=True, related_name="eval_author") + sAuthor = models.CharField("Auteur", max_length=120) + Author_2e = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name="Second auteur", on_delete=models.SET_NULL, null=True, related_name="eval_second_author") + sAuthor_2e = models.CharField("Second auteur", max_length=120) + + #Information sur l 'étudiant/stagiaire + Student = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name="Nom du stagiaire/étudaint", on_delete=models.SET_NULL, null=True) + sStudent = models.CharField("Nom de l'étudiant/stagiaire", max_length=120) + + #Information sur le suivi + nEval_Type = models.CharField('Type de suivi', max_length=1, choices=EVAL_TYPE, default=1) + dtDate = models.DateField("Date", default=timezone.now) + sRef = models.CharField("N° de référence / FIP", max_length=120) + nEval_Mode = models.CharField('Mode de suivi ', max_length=1, choices=EVAL_MODE, default=1) + sDesc_neg = models.TextField("Points à améliorer") + sDesc_pos = models.TextField("Points positifs") + sDesc_global = models.TextField("Avis global sur l'intervention/journée/exercice") + + #Information sur l'intervention + nInter_Nature = models.CharField('Nature', max_length=1, choices=INTER_NATURE, default=1) + nInter_Priority = models.CharField('Priorité', max_length=1, choices=INTER_PRIORITY, default=1) + nInter_Complexity = models.CharField('Nature de complexité', max_length=1, choices=INTER_COMPLEXITY, default=1) + sInter_Desc = models.TextField("Description courte") + nStudent_Roles = models.CharField("Rôle de l'étudiant/stagiaire", max_length=1, choices=STUDENT_ROLE, default=1) + + + #Automatic data + dtUpdated = models.DateTimeField('date updated', auto_now=True) + dtCreated = models.DateTimeField('date published', auto_now_add=True) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.a_evals = None + + + def get_all_evals_for_student(self,sStudent): + + self.a_evals = [] + evals = cl_Student_eval.objects.filter(sStudent=sStudent).order_by('sRef') + for eval in evals: + self.a_evals.append({"uuid":eval.uuid,"sRef":eval.sRef, "nEval_Mode": eval.nEval_Mode, "eval":eval}) + print(self.a_evals) + return self.a_evals + + + + + + + + def __str__(self): + return f"{ self.sStudent } => {self.sRef} ({ EVAL_MODE[self.nEval_Mode]})" + + class Meta: + verbose_name = "Suivi étudiants - stagiaires" + verbose_name_plural = "Suivis étudiants - stagiaires" diff --git a/studenteval/tests.py b/studenteval/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/studenteval/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/studenteval/urls.py b/studenteval/urls.py new file mode 100644 index 0000000..3afa415 --- /dev/null +++ b/studenteval/urls.py @@ -0,0 +1,17 @@ +from django.urls import path + + + +from . import views +''' + +app_name = "studenteval" +urlpatterns = [ + #path('vhc', views.view_vhc, name='view_vhc'), + #path('peremptions', views.view_peremptions, name='view_peremptions'), + + + +] + +''' \ No newline at end of file diff --git a/studenteval/views.py b/studenteval/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/studenteval/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.