api.py 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. from django.shortcuts import render
  2. from django.template import loader
  3. from django.template.defaultfilters import slugify
  4. from django.urls import reverse
  5. from django.utils import timezone
  6. from django.http import HttpResponse, HttpResponseRedirect
  7. from django.contrib import messages
  8. from django.db.models import Q
  9. from django.contrib.auth import authenticate, login, logout
  10. from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
  11. from django.contrib.auth.models import User
  12. from core.views import gen_page_base, gen_page_sys, get_get_value
  13. from .models import *
  14. def genloginapp(user_id, app_id):
  15. item = GES_User.objects.get( id = user_id)
  16. app = GES_APP.objects.get( id = app_id)
  17. app_login =""
  18. if app.GESAP_ltype == "pnom":
  19. app_login = slugify(item.GES_Prenom[:1]) + slugify(item.GES_Nom)
  20. app_login = app_login.lower()
  21. if app.GESAP_ltype == "pnomMGAG":
  22. app_login = slugify(item.GES_Prenom[:1]) + slugify(item.GES_Nom)
  23. app_login = app_login.upper()
  24. elif app.GESAP_ltype == "pre.nom":
  25. app_login = slugify(item.GES_Prenom) + "." + slugify(item.GES_Nom)
  26. app_login = app_login.lower()
  27. elif app.GESAP_ltype == "preMAG.nomMAG":
  28. app_login = slugify(item.GES_Prenom) + "." + slugify(item.GES_Nom)
  29. app_login = app_login.upper()
  30. elif app.GESAP_ltype == "pre.nom@el":
  31. app_login = slugify(item.GES_Prenom) + "." + slugify(item.GES_Nom) + "@elsan.care"
  32. app_login = app_login.lower()
  33. return app_login
  34. def link_user_to_app(user_id, action):
  35. item = GES_User.objects.get( id = user_id)
  36. for apps in item.GES_APPs.all():
  37. app_login = genloginapp(item.id, apps.id)
  38. print(app_login)
  39. obj, created = GES_APPLink.objects.update_or_create(GES_APPLink_User= item, GES_APPLink_APP= apps)
  40. print(created)
  41. if created == True or action == "check":
  42. obj.GES_APPLink_Login = app_login
  43. obj.GES_APPLink_MDP=item.GES_Motdepasse
  44. obj.GES_OK = False
  45. obj.save()
  46. return
  47. def user_get_list(request):
  48. template = loader.get_template('gest_user_api_get_list.html')
  49. #password = generate_phrase(length=12, min_words=2, max_words=5)
  50. #print(password)
  51. get_search = request.GET.get('get_search', '')
  52. if get_search :
  53. #print(get_search)
  54. data_query = GES_User.objects.filter(Q(GES_Nom__icontains=get_search)
  55. |Q(GES_Prenom__icontains=get_search)
  56. |Q(GES_Service__SERVICE_Nom__icontains=get_search)
  57. |Q(GES_Fonction__GESFC_Nom__icontains=get_search)
  58. ).order_by('GES_Site','GES_Service','GES_Fonction','GES_Nom','GES_Prenom')
  59. else :
  60. #print("not get_search")
  61. data_query = GES_User.objects.filter(GES_OK = False).order_by('GES_Site','GES_Service','GES_Fonction','GES_Nom','GES_Prenom')
  62. html = template.render({
  63. 'data_query': data_query,
  64. }, request)
  65. return HttpResponse(html)
  66. def user_get(request, id):
  67. template = loader.get_template('gest_user_api_get.html')
  68. item = GES_User.objects.get(id = id)
  69. #link_user_to_app(item.id, 'update')
  70. item.apps = GES_APPLink.objects.filter(GES_APPLink_User = item.id)
  71. item.apps_form = GES_APPLink_add_form(instance=item)
  72. item.isok = 1
  73. for app in item.apps:
  74. if app.GES_APPLink_Create != True:
  75. item.isok = 0
  76. if item.isok == 0 and item.GES_OK == True:
  77. item.GES_OK = False
  78. item.save()
  79. html = template.render({
  80. 'item': item,
  81. }, request)
  82. return HttpResponse(html)
  83. def user_get_for_send(request, id):
  84. template = loader.get_template('gest_user_api_get_for_send.html')
  85. item = GES_User.objects.get(id = id)
  86. #link_user_to_app(item.id, 'update')
  87. item.apps = GES_APPLink.objects.filter(GES_APPLink_User = item.id)
  88. html = template.render({
  89. 'item': item,
  90. }, request)
  91. return HttpResponse(html)
  92. def user_edit(request, id):
  93. get_search = request.GET.get('get_search', '')
  94. print(get_search)
  95. template = loader.get_template('gest_user_api_edit.html')
  96. if id == None or id == '0':
  97. item = GES_User()
  98. item.id = 0
  99. else :
  100. item = GES_User.objects.get(id = id)
  101. form = GES_User_form(instance=item)
  102. form.url = "gest_user_edit"
  103. html = template.render({
  104. 'get_search':get_search,
  105. 'form': form,
  106. 'item': item,
  107. }, request)
  108. return HttpResponse(html)
  109. def user_complete(request, id):
  110. try:
  111. item = GES_User.objects.get(id = id)
  112. except:
  113. return HttpResponse('Error')
  114. if item.GES_OK == False :
  115. item.GES_OK = True
  116. else :
  117. item.GES_OK = False
  118. item.save()
  119. return HttpResponse(item.id)
  120. def app_edit(request, id):
  121. get_search = request.GET.get('get_search', '')
  122. print(get_search)
  123. template = loader.get_template('gest_user_api_edit.html')
  124. if id == None or id == '0':
  125. item = GES_APPLink()
  126. item.id = 0
  127. else :
  128. item = GES_APPLink.objects.get(id = id)
  129. form = GES_APPLink_form(instance=item)
  130. form.url = "gest_app_edit"
  131. html = template.render({
  132. 'get_search':get_search,
  133. 'form': form,
  134. 'item': item,
  135. }, request)
  136. return HttpResponse(html)
  137. def app_add(request, user_id, app_id):
  138. try:
  139. user = GES_User.objects.get(id = user_id)
  140. except:
  141. return HttpResponse('Error')
  142. try:
  143. app = GES_APP.objects.get(id = app_id)
  144. except:
  145. return HttpResponse('Error')
  146. app_login = genloginapp(user.id, app.id)
  147. obj, created = GES_APPLink.objects.update_or_create(GES_APPLink_User= user, GES_APPLink_APP= app)
  148. print(created)
  149. obj.GES_APPLink_Login = app_login
  150. obj.GES_APPLink_MDP=user.GES_Motdepasse
  151. obj.GES_OK = False
  152. obj.save()
  153. return HttpResponse(obj.GES_APPLink_User.id)
  154. def app_remove(request, id):
  155. try:
  156. item = GES_APPLink.objects.get(id = id)
  157. except:
  158. return HttpResponse('Error')
  159. if item.GES_APPLink_Create == False:
  160. item.delete()
  161. return HttpResponse(item.GES_APPLink_User.id)
  162. def switch_app_status(request, id):
  163. try:
  164. item = GES_APPLink.objects.get(id = id)
  165. except:
  166. return HttpResponse('Error')
  167. if item.GES_APPLink_Create == False :
  168. item.GES_APPLink_Create = True
  169. else :
  170. item.GES_APPLink_Create = False
  171. item.save()
  172. return HttpResponse(item.GES_APPLink_User.id)