models.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from __future__ import unicode_literals
  2. from django.utils.translation import ugettext_lazy as _
  3. from django.db import models
  4. from django.contrib.auth.models import User
  5. class Puntaje_Encuesta(models.Model):
  6. ''' Tabla para almacenar la evaluacion de cada participante
  7. '''
  8. user = models.ForeignKey(
  9. User,
  10. on_delete=models.CASCADE,
  11. verbose_name = _('Usuario')
  12. )
  13. punto = models.CharField(
  14. verbose_name = _('punto evaluado'),
  15. max_length = 500,
  16. default = "-",
  17. )
  18. puntuacion = models.IntegerField(
  19. verbose_name = _('puntuacion'),
  20. default = 0
  21. )
  22. def __str__(self):
  23. return str("id:"+str(self.id)+" ,usuario: "+self.user_id + \
  24. " ,punto: "+self.punto+ \
  25. " ,puntuacion:"+ str(self.puntuacion))
  26. def getDimension(self):
  27. ''' Devuelve la dimension a la que pertenece esta puntuacion
  28. '''
  29. return int(self.punto[0])
  30. class Puntaje_Punto(models.Model):
  31. ''' Tabla para almacenar la puntuacion de cada punto de la encuesta
  32. '''
  33. punto = models.CharField(
  34. verbose_name= _('punto de la encuesta'),
  35. max_length = 500,
  36. default = '-',
  37. )
  38. valoraciones = models.IntegerField(
  39. verbose_name = _('numero de valoraciones'),
  40. default = 0,
  41. )
  42. sumatoria = models.IntegerField(
  43. verbose_name = _('sumatoria de valoraciones'),
  44. default = 0,
  45. )
  46. promedio = models.FloatField(
  47. verbose_name = _('promedio obtenido para este punto'),
  48. default = 0,
  49. )
  50. def __str__(self):
  51. return str("id:" + str(self.id) + " ,punto: "+ self.punto + \
  52. ", valoraciones: " + str(self.valoraciones) + \
  53. ", sumatoria: " + str(self.sumatoria) + \
  54. ", promedio: " + str(self.promedio))
  55. def actualizar(self, valoracion):
  56. ''' actualiza los valores de valoraciones, sumatoria y promedio para este punto'''
  57. if valoracion > 0:
  58. self.valoraciones += 1
  59. self.sumatoria += valoracion
  60. self.promedio = (self.sumatoria*5) / float(self.valoraciones*5)
  61. #self.promedio = (self.sumatoria) / (self.valoraciones)