views.py 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. from django.shortcuts import render
  2. from .models import *
  3. from .forms import *
  4. from sicurezza.views import *
  5. from logger.views import *
  6. from configurazione.views import *
  7. from django.db.models import Sum
  8. from .templatetags.calctags import *
  9. def CausaliList(request):
  10. session = getSessionParms(request)
  11. userauth = session['_userauth_']
  12. request.session['_from_']="Causali:CausaliList"
  13. try:
  14. utenteautorizzato = User.objects.get(pk=userauth)
  15. except User.DoesNotExist as dne:
  16. return HttpResponseRedirect(reverse('Login:login',args={}))
  17. causali = Causale.objects.all().order_by('nome')
  18. value={}
  19. value['utenteautorizzato'] = utenteautorizzato
  20. value['causali'] = causali
  21. value['navbar'] = True
  22. print("livello autorizzazione",utenteautorizzato.securitylevel_id)
  23. securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
  24. securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
  25. value['securityrow'] = securityrow
  26. value['securityrowLen'] = len(securityrow)
  27. print(getCausaliOptions(12))
  28. if request.method == 'POST':
  29. if 'Ordine_by_id' in request.POST:
  30. request.session['_causali_order'] = 'oi'
  31. value['causali'] = Causale.objects.all().order_by('id')
  32. elif 'Ordine_by_causale' in request.POST:
  33. request.session['_causali_order'] = 'oc'
  34. value['causali'] = Causale.objects.all().order_by('nome')
  35. elif 'Ordine_by_ordine' in request.POST:
  36. request.session['_causale_order'] = 'oo'
  37. value['causali'] = Causale.objects.all().order_by('ordine')
  38. if 'causaleedit' in request.POST:
  39. request.session['_causale2edit_'] = request.POST.get('causaleedit')
  40. print('causale richiesta:',request.session['_causale2edit_'])
  41. return HttpResponseRedirect(reverse('Causali:CausaliEdit',args={}))
  42. return render(request,'Causali.List.html',value)
  43. def CausaliEdit(request):
  44. session = getSessionParms(request)
  45. userauth = session['_userauth_']
  46. causale2edit = session['_causale2edit_']
  47. print('causale2edit',causale2edit)
  48. request.session['_from_']="Causali:CausaliList"
  49. try:
  50. utenteautorizzato = User.objects.get(pk=userauth)
  51. except User.DoesNotExist as dne:
  52. return HttpResponseRedirect(reverse('Login:login',args={}))
  53. value={}
  54. value['utenteautorizzato'] = utenteautorizzato
  55. value['navbar'] = True
  56. print("livello autorizzazione",utenteautorizzato.securitylevel_id)
  57. securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
  58. securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
  59. value['securityrow'] = securityrow
  60. value['securityrowLen'] = len(securityrow)
  61. from_email = getConfigurazione('mail:notifica:from')
  62. value['from_email'] = from_email
  63. value['template'] = Template.objects.all().filter(enabled=True)
  64. value['servizi'] = Servizi.objects.all().filter(enabled=True)
  65. try:
  66. causale = Causale.objects.get(pk=causale2edit)
  67. print("causale recuperata:",causale.id)
  68. except Causale.DoesNotExist as dne:
  69. print("causale non trovata")
  70. causale = Causale()
  71. causale.valore = 0
  72. if not causale.from_email:
  73. causale.from_email = getConfigurazione('mail:notifica:from')
  74. if request.method=='POST':
  75. print('request.method',request.method)
  76. if 'Ritorno' in request.POST:
  77. print('Premuto tasto Ritorna da Editing Domini')
  78. return HttpResponseRedirect(reverse('Causali:CausaliList'))
  79. fc = formCausale(request.POST)
  80. fc.update()
  81. if fc.is_valid():
  82. print('fc valida',causale.id)
  83. causale.nome = fc.cleaned_data.get('nome')
  84. causale.valore = fc.cleaned_data.get('valore')
  85. print(causale.valore)
  86. causale.enabled = fc.cleaned_data.get('enabled')
  87. causale.from_email = fc.cleaned_data.get('from_email')
  88. causale.send_email_user = fc.cleaned_data.get('send_email_user')
  89. causale.send_email_account = fc.cleaned_data.get('send_email_account')
  90. causale.send_email_admin = fc.cleaned_data.get('send_email_admin')
  91. causale.send_email_other = fc.cleaned_data.get('send_email_other')
  92. causale.to_account = fc.cleaned_data.get('to_account')
  93. causale.to_admin = fc.cleaned_data.get('to_admin')
  94. causale.to_other = fc.cleaned_data.get('to_other')
  95. causale.date_expire_contract = fc.cleaned_data.get('date_expire_contract')
  96. causale.date_expire_registrar = fc.cleaned_data.get('date_expire_registrar')
  97. causale.check_registrar = fc.cleaned_data.get('check_registrar')
  98. causale.sms = fc.cleaned_data.get('sms')
  99. causale.renew_request = fc.cleaned_data.get('renew_request')
  100. causale.renew_authorized = fc.cleaned_data.get('renew_authorized')
  101. causale.close_request = fc.cleaned_data.get('close_request')
  102. causale.ordine = fc.cleaned_data.get('ordine')
  103. causale.domain_tobedeleted = fc.cleaned_data.get('domain_tobedeleted')
  104. if 'template' in fc.cleaned_data and int(fc.cleaned_data.get('template')) > 0:
  105. print('template presente:',fc.cleaned_data.get('template'))
  106. causale.template_id = fc.cleaned_data.get('template')
  107. #causale.template_admin_id = fc.cleaned_data.get('template_admin')
  108. #causale.template_account_id = fc.cleaned_data.get('template_account')
  109. #causale.template_other_id = fc.cleaned_data.get('template_other')
  110. if 'domain_service' in fc.cleaned_data and int(fc.cleaned_data.get('domain_service')) > 0:
  111. print('domain_service presente:',fc.cleaned_data.get('domain_service'))
  112. causale.domain_service_id = fc.cleaned_data.get('domain_service')
  113. print('Causale.id',causale.id)
  114. print(dir(causale))
  115. causale.save()
  116. else:
  117. print('fc.is_valid saltato')
  118. print(fc.errors)
  119. else:
  120. temp = {}
  121. temp['nome'] = causale.nome
  122. temp['valore'] = causale.valore
  123. temp['enabled'] = causale.enabled
  124. temp['ordine'] = causale.ordine
  125. temp['from_email'] = causale.from_email
  126. temp['send_email_user'] = causale.send_email_user
  127. temp['send_email_admin'] = causale.send_email_admin
  128. temp['send_email_account'] = causale.send_email_account
  129. temp['send_email_other' ] = causale.send_email_other
  130. temp['to_admin'] = causale.to_admin
  131. temp['to_account'] = causale.to_account
  132. temp['to_other'] = causale.to_other
  133. temp['template'] = causale.template_id
  134. temp['template_admin'] = causale.template_admin_id
  135. temp['template_account'] = causale.template_account_id
  136. temp['template_other'] = causale.template_other_id
  137. temp['date_expire_contract'] = causale.date_expire_contract
  138. temp['date_expire_registrar'] = causale.date_expire_registrar
  139. temp['check_registrar'] = causale.check_registrar
  140. temp['sms'] = causale.sms
  141. temp['renew_request'] = causale.renew_request
  142. temp['renew_authorized'] = causale.renew_authorized
  143. temp['close_request'] = causale.close_request
  144. temp['ordine'] = causale.ordine
  145. temp['domain_tobedeleted'] = causale.domain_tobedeleted
  146. try:
  147. temp['domain_service'] = causale.domain_service_id
  148. except Servizi.DoesNotExist as dnf:
  149. temp['domain_service'] = 0
  150. print(temp)
  151. fc = formCausale(temp)
  152. fc.update()
  153. value['formcausale'] = fc
  154. return render(request,'Causali.Edit.html',value)
  155. def ControlloScadenzeRegistrar(request,demo=0,dominio=0):
  156. '''
  157. questa funzione effettua la scansione dei domini per verificare che non ci siano scadenze imminenti.
  158. il flag: demo se 1 non effettua l'invio
  159. dovrebbero venir inviate le seguenti mail:
  160. scadenza in arrivo: al destinatario
  161. lista prossime scadenze notificate all'amministrazione e al server
  162. demo = 1: nessuna operazione
  163. demo = 0: modalita' demo, non invia le email
  164. dominio = 0: operazioni normali
  165. dominio = id: predispone invio mail per il dominio <id>
  166. causale = 0: operazioni normali
  167. causale = id: invia email con la causale <id>
  168. '''
  169. domini = Domini.objects.all().filter(enabled=True).order_by('date_expire_contract')
  170. if dominio:
  171. print('dominio richiesto:',dominio)
  172. domini = Domini.objects.filter(pk=dominio).filter_by(enabled=True)
  173. print('dominio trovato:',domini)
  174. listadomini=[]
  175. for d in domini:
  176. #l'avviso viene avviato quando viene raggiunto il limite di registrazione indicato
  177. if int((d.date_expire_registrar - date.today()).days) < int(getConfigurazione('registrar-giorni-preavviso')):
  178. print("scadenze: ",d.domain,d.date_expire_registrar,(d.date_expire_registrar - date.today()).days)
  179. # verifica eventuali causali gia' registrate e presenti
  180. listadomini.append(d)
  181. data={}
  182. data['domini']=listadomini
  183. print('domini',listadomini)
  184. # invia la mail
  185. for i in listadomini:
  186. sm = ServizioMail()
  187. print(i)
  188. print(i.domain)
  189. # servono alcune cose:
  190. #1: template
  191. idtemplate = getConfigurazione('template-registrar-in-scadenza')
  192. template = Template.objects.get(pk=idtemplate)
  193. #2: lista dei destinatari a cui mandare l'avviso
  194. #3: lista da inviare in amministrazione
  195. print(template.nome)
  196. listadestinatari=[]
  197. listadestinatari.append(getConfigurazione('mail:notifica'))
  198. dictdict={}
  199. dictdict['dominio'] = i.__dict__
  200. sm.set_rcptto(listadestinatari)
  201. sm.set_soggetto(template.soggetto)
  202. sm.set_oggetto(template.oggetto)
  203. sm.set_data(dictdict)
  204. if demo==1: sm.send_mail()
  205. # ignoro la verifica dei contatti, tanto stiamo andando solo con la voce nel dominio
  206. return render(request,"Controllo.Scadenze.html",data)
  207. def getCausaliOptions(causale=None):
  208. if not causale: return causale
  209. causali = None
  210. try:
  211. causali = Causale.objects.all().get(id=causale)
  212. except Causale.DoesNotExist as dne:
  213. print('La causale indicata non esiste')
  214. print(dne)
  215. if not causali.enabled: return None
  216. # abbiamo trovato la causale
  217. # ora dobbiamo estrarre l'elenco delle righe su cui lavorare.
  218. cr = causali.causalerow_set.filter(enabled=True)
  219. print('numero di righe trovate',len(cr))
  220. for c in cr:
  221. print(c.id,c.causaleOptions.nome,c.causaleOptions.tag)
  222. return cr