from django.db import models from datetime import datetime from django.contrib.auth.models import AbstractUser # Create your models here. class User(AbstractUser): pass class TipoRadio(models.Model): # tid = db.Column(db.Integer, primary_key=True, nullable=False) nome = models.CharField(max_length=64, unique=True) descrizione = models.CharField(max_length=1000) # rapporti = db.relationship("RapportoRicezione") class RapportoRicezione(models.Model): class Meta: verbose_name = "rapporto ricezione" # verbose_plural_name = 'rapporti ricezione' author = models.ForeignKey(User, related_name="rapporti", on_delete=models.PROTECT) tipo_radio = models.ForeignKey( TipoRadio, on_delete=models.PROTECT, related_name="rapporti" ) date = models.DateField(default=datetime.now) lat = models.FloatField() lng = models.FloatField() comprensibile = models.IntegerField() # TODO: >= 0 <= 5 stabilita = models.IntegerField() # TODO: >= 0 <= 5 def serialize(self): d = {k: v for k, v in self.__dict__.items() if not k.startswith("_")} d["colore"] = self.colore d["radius"] = self.radius d["explaination"] = self.explaination return d @property def colore(self): c = int(self.comprensibile) print(repr(c)) if c > 3: return "green" if c > 1: return "yellow" return "red" @property def radius(self): return int(self.stabilita) * 70 @property def explaination(self): return """ Ricevuto con %s Aggiunto il %s da %s """ % ( self.tipo_radio.nome, self.date, self.author.username, ) def __str__(self): return "" % (self.pk, self.date)