2
0

models.py 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. from __future__ import unicode_literals
  2. from django.db import models
  3. from configurazione.models import *
  4. from utenti.models import *
  5. from alias.models import *
  6. from liste.models import *
  7. from sicurezza.models import *
  8. from registrar.models import *
  9. from ftp.models import *
  10. from mail.models import *
  11. from database.models import *
  12. from causali.models import *
  13. from target.models import *
  14. class Domini(models.Model):
  15. id = models.IntegerField(db_column='id',primary_key=True)
  16. nome = models.CharField(db_column='nome',max_length=50)
  17. #nome = models.CharField(db_column='nome',max_length=50)
  18. contatti = models.CharField(db_column='contatti',max_length=256,default='')
  19. proprietario = models.TextField(db_column='proprietario',default='')
  20. public_email = models.CharField(db_column='public_email',max_length=128)
  21. #home: ovvero il default destination (una sorta di alias di dominio)
  22. home = models.CharField(db_column='home',max_length=50)
  23. #server di storage della posta elettronica
  24. mail_server = models.ForeignKey('mail.MailServer',db_column='mail_server',on_delete=models.PROTECT)
  25. lmtp_server = models.ForeignKey('mail.LmtpServer',db_column='lmtp_server',on_delete=models.PROTECT)
  26. mail_proxy = models.ForeignKey('mail.MailProxy',db_column='mail_proxy',on_delete=models.PROTECT)
  27. sql_remote = models.ForeignKey('mail.SqlRemote',db_column='sql_remote',on_delete=models.PROTECT)
  28. # 17.1.22
  29. # la riga mail_server e' stata modificata nel database. l'originale era server.
  30. # ho anche aggiornato i vari dovecot e postfix.
  31. #ftp_server = models.ForeignKey('ftp.FTPgroup',db_column='ftp_server',on_delete=models.PROTECT)
  32. #sql_server = models.IntegerField('sql.SQLserver',db_column='sql_server',default=0)
  33. '''
  34. questi tre campi (max_*) direi che possono essere spostati nella sezione tipo di contratto insieme alle
  35. dimensioni e alle caratteristiche del contratto.
  36. tanto in questo contesto non servono a una mazza
  37. '''
  38. max_account = models.IntegerField(db_column='max_account',default=0)
  39. max_alias = models.IntegerField(db_column='max_alias',default=0)
  40. max_list = models.IntegerField(db_column='max_list',default=0)
  41. mail_quota = models.IntegerField(db_column='mail_quota',default=0)
  42. http_quota = models.IntegerField(db_column='http_quota',default=0)
  43. ftp_quota = models.IntegerField(db_column='ftp_quota',default=0)
  44. sql_quota = models.IntegerField(db_column='sql_quota',default=0)
  45. nextcloud_quota = models.IntegerField(db_column='nextcloud_quota',default=0)
  46. last_mail_quota = models.IntegerField(db_column='last_mail_quota',default=0)
  47. last_http_quota = models.IntegerField(db_column='last_http_quota',default=0)
  48. last_ftp_quota = models.IntegerField(db_column='last_ftp_quota',default=0)
  49. last_sql_quota = models.IntegerField(db_column='last_sql_quota',default=0)
  50. last_nextcloud_quota = models.IntegerField(db_column='last_nextcloud_quota',default=0)
  51. date_mail_quota = models.DateField(db_column='date_mail_quota')
  52. date_http_quota = models.DateField(db_column='date_http_quota')
  53. date_ftp_quota = models.DateField(db_column='date_ftp_quota')
  54. date_sql_quota = models.DateField(db_column='date_sql_quota')
  55. date_nextcloud_quota = models.DateField(db_column='date_nextcloud_quota')
  56. # utilizzato per stabilire quando effettuare il calcolo delle percentuali
  57. last_mail_quota_check = models.BooleanField(db_column='last_mail_quota_check')
  58. last_http_quota_check = models.BooleanField(db_column='last_http_quota_check')
  59. last_ftp_quota_check = models.BooleanField(db_column='last_ftp_quota_check')
  60. last_sql_quota_check = models.BooleanField(db_column='last_sql_quota_check')
  61. last_nextcloud_quota_check = models.BooleanField(db_column='last_nextcloud_quota_check')
  62. #totale_quota = models.IntegerField(db_column='totale_quota',default=0)
  63. #last_totale_quota = models.IntegerField(db_column='last_totale_quota',default=0)
  64. warning_mail_quota = models.IntegerField(db_column='warning_mail_quota',default=0)
  65. warning_mail_quota_check = models.BooleanField(db_column='warning_mail_quota_check',default=False)
  66. warning_mail_quota_send = models.BooleanField(db_column='warning_mail_quota_send',default=False)
  67. date_start_contract = models.DateField(db_column='date_start_contract')
  68. date_expire_contract = models.DateField(db_column='date_expire_contract')
  69. date_expire_registrar = models.DateField(db_column='date_expire_registrar')
  70. nota = models.TextField(db_column='nota')
  71. enabled = models.BooleanField(db_column='enabled', default=1)
  72. tobedeleted = models.BooleanField(db_column='tobedeleted', default=1)
  73. mail = models.BooleanField(db_column='mail', default=1)
  74. pop3 = models.BooleanField(db_column='pop3', default=0)
  75. imap = models.BooleanField(db_column='imap', default=1)
  76. smtp = models.BooleanField(db_column='smtp', default=0)
  77. smtp_relay = models.BooleanField(db_column='smtp_relay', default=0)
  78. webmail = models.BooleanField(db_column='webmail', default=False)
  79. nextcloud = models.BooleanField(db_column='nextcloud',default=False)
  80. sms = models.BooleanField(db_column='sms',default=False)
  81. sendafile = models.BooleanField(db_column='sendafile',default=False)
  82. nextcloud_pwd = models.BooleanField(db_column='nextcloud_pwd',default=True)
  83. lmtp = models.BooleanField(db_column='lmtp',default=0)
  84. sieve = models.BooleanField(db_column='sieve',default=1)
  85. antivirus = models.BooleanField(db_column='antivirus',default=1)
  86. spf = models.BooleanField(db_column='spf',default=1)
  87. blacklist = models.BooleanField(db_column='blacklist',default=1)
  88. ftp = models.BooleanField(db_column='ftp',default=False)
  89. sql = models.BooleanField(db_column='sql',default=False)
  90. http = models.BooleanField(db_column='http',default=False)
  91. proxy = models.BooleanField(db_column='proxy',default=False)
  92. sendafile = models.BooleanField(db_column='sendafile',default=False)
  93. registrar = models.ForeignKey('registrar.Registrar',db_column='registrar',on_delete=models.PROTECT)
  94. # owner = models.ForeignKey('contatti.Contatti',db_column='owner',on_delete=models.PROTECT)
  95. renew_authorized = models.BooleanField(db_column='renew_authorized')
  96. rinnovo_automatico = models.BooleanField(db_column='rinnovo_automatico')
  97. renew_code = models.CharField(db_column='renew_code',max_length=36)
  98. payment_status = models.BooleanField(db_column='payment_status')
  99. payment_value = models.DecimalField(db_column='payment_value',max_digits=8,decimal_places=2)
  100. payment_exclusion = models.BooleanField(db_column='payment_exclusion')
  101. # ma il livello, non dovrebbe essere a livello gestione_utente?
  102. target = models.ForeignKey('target.Target',db_column='target',on_delete=models.PROTECT)
  103. last_causale = models.ForeignKey('causali.Causale',db_column='last_causale',on_delete=models.PROTECT)
  104. # consente l'editing del record.
  105. edit = models.BooleanField(db_column='edit',default=0)
  106. # per le attivita' via mqtt
  107. checkstatus = models.BooleanField(db_column='checkstatus',default=False)
  108. class Meta:
  109. ordering = ['id']
  110. db_table = 'domini'
  111. managed = False
  112. '''
  113. vorrei migrare tutte le voci interne all'applicazione in italiano
  114. '''
  115. #class Domain(Domini):
  116. # def __init__(self,args,**kwargs):
  117. # super().__init__(args,**kwargs)
  118. # class Meta:
  119. # ordering = ['id']
  120. # db_table = 'domini'
  121. # managed = False
  122. class DominiServizi(models.Model):
  123. id = models.IntegerField(db_column='id',primary_key=True)
  124. nome = models.CharField(db_column='nome',max_length=30)
  125. classe = models.CharField(db_column='classe',max_length=10)
  126. enabled = models.BooleanField(db_column='enabled')
  127. class Meta:
  128. ordering = ['id']
  129. db_table = 'domini_servizi'
  130. managed = False
  131. class DominiServiziAssegnati(models.Model):
  132. id = models.IntegerField(db_column='id',primary_key=True)
  133. servizio = models.ForeignKey('DominiServizi',db_column='servizio',on_delete=models.CASCADE)
  134. dominio = models.ForeignKey('Domini',db_column='dominio',on_delete=models.CASCADE)
  135. attivazione= models.DateField(db_column='attivazione')
  136. disattivazione = models.DateField(db_column='disattivazione')
  137. nota = models.TextField(db_column='nota')
  138. class Meta:
  139. ordering = ['id']
  140. db_table = 'domini_servizi_assegnati'
  141. managed = False
  142. class Storia(models.Model):
  143. id = models.IntegerField(db_column='id',primary_key=True)
  144. dominio = models.ForeignKey('Domini',db_column='dominio',on_delete=models.CASCADE)
  145. causale = models.ForeignKey('causali.Causale',db_column='causale',on_delete=models.CASCADE)
  146. utente = models.ForeignKey('utenti.User',db_column='utente',on_delete=models.CASCADE)
  147. data = models.IntegerField(db_column='data')
  148. nota = models.TextField(db_column='nota')
  149. class Meta:
  150. ordering = ['id']
  151. db_table = 'domini_storia'
  152. managed = False