1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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'
- #rid = db.Column(db.Integer, primary_key=True)
- 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 = self.comprensibile
- if c > 3:
- return "green"
- if c > 1:
- return "yellow"
- return "red"
- @property
- def radius(self):
- return 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 "<Rapporto %s del %s>" % (self.rid, self.date)
|