A la UB cada vegada es duen a terme més projectes de recerca per part del personal investigador de la universistat. Per tal de facilitar la gestió dels projectes i de l'assignació de personal ens demanen implementar un sistema que permeti fer el següent:
Per tal minimitzar el temps de desenvolupament, utilitzarem el framework web Django i el seu admin panel.
Un investigador es caracteritza de moment només per un nom i un cognom.
Un projecte té un títol i un pressupost. També volem saber quin personal investigador hi està assignat i quin és l'investigador principal del projecte. El personal investigador pot estar assignat a diferents projectes a la vegada. De cada assignació en volem guardar la data d'inici i final.
Aneu a l'article Django, creeu un projecte nou amb el seu Virtualenv.
Per començar cal crear el model (fitxer models.py
) amb les següents classes:
Crea la classe Investigador al fitxer models.py
. Recorda que del personal investigador en sabem com a mínim el nom i el cognom. Pots afegir altres atributs si ho consideres convenient.
class Project(models.Model): #completar amb les altres propietats investigators = models.ManyToManyField('Investigator',through='Assignment') pi = models.ForeignKey('Investigator', on_delete=models.SET_NULL, null=True, related_name='led_projects')
Cal completar el model amb la classe Assignment, per poder guardar la data d'entrada i sortida d'un investigador a un determinat projecte.
class Assignment(models.Model): project = models.ForeignKey(Project, on_delete=models.RESTRICT) investigator = models.ForeignKey(Investigator, on_delete=models.RESTRICT) datein = models.DateField() dateout = models.DateField(null=True, blank=True)
Per poder visualitzar investigadors al taulell d'aministració cal registrar el model al fitxer admin.py
from .models import Investigator admin.site.register(Investigator)
Fes visible al panell d'administració els projectes.
Per tal de visualitzar la llista de projectes i investigadors cal que implementis el mètode:
__str__()
El panell d'administració per a gestionar projectes i investigadors ha de quedar de la següent manera: