views.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. from django.shortcuts import render
  2. from django.template import loader
  3. from django.urls import reverse
  4. from django.http import HttpResponse, HttpResponseRedirect
  5. from django.contrib import messages
  6. from django.contrib.auth import authenticate, login, logout
  7. from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
  8. from django.contrib.auth.models import User
  9. from core.models import *
  10. def gen_menu(position):
  11. try:
  12. menu = Page.objects.exclude(p_publier = 0).filter(p_menu_position = position).order_by('-p_menu_poid')
  13. except:
  14. menu = Page.objects.none()
  15. return menu
  16. def gen_page_base():
  17. page = Page.objects.none()
  18. page.p_menu_haut = gen_menu('haut')
  19. page.p_menu_pied = gen_menu('pied')
  20. page.p_see_title_and_des_in_templates = True
  21. return page
  22. def gen_page_sys(p_titre_slugify):
  23. #print(p_titre_slugify)
  24. try :
  25. page = Page.objects.get(p_titre_slugify = p_titre_slugify)
  26. except:
  27. page = gen_page_base()
  28. page.p_contenu = "<h1>Erreur la page demandé n'existe pas </h1>"
  29. page.p_titre = "404 ! Erreur sur la page demmandé"
  30. page.p_icone = "fas fa-bug"
  31. page.p_menu_haut = gen_menu('haut')
  32. page.p_menu_pied = gen_menu('pied')
  33. page.p_meta_title = page.p_titre
  34. return page
  35. def index(request):
  36. page = gen_page_sys('bienvenus')
  37. template = loader.get_template('page.html')
  38. context = {
  39. 'page' : page,
  40. }
  41. return HttpResponse(template.render(context, request))
  42. def page(request, p_url):
  43. #print(p_url)
  44. p_url = "/"+p_url
  45. template = loader.get_template('page.html')
  46. try:
  47. page = Page.objects.get(p_adresse = p_url)
  48. page.p_menu_haut = gen_menu('haut')
  49. page.p_menu_pied = gen_menu('pied')
  50. page.p_meta_title = page.p_titre
  51. except:
  52. page = gen_page_base()
  53. page.p_contenu = "<h1>Erreur la page demandé n'existe pas </h1>"
  54. context = {
  55. 'page' : page,
  56. }
  57. return HttpResponse(template.render(context, request))
  58. def contact(request,):
  59. page = gen_page_base()
  60. template = loader.get_template('page.html')
  61. page.p_titre = "Nous Contacter"
  62. page.p_description = "Formulaire de prise de contact"
  63. page.p_contenu = "<p>Merci de remplir le formulaire pour nous contacter.</p>"
  64. page.p_adresse = "/contact"
  65. if request.method == "POST":
  66. form = ContactForm(request.POST)
  67. if form.is_valid():
  68. n_contact = form.save()
  69. page.p_contenu = "<p>Merci. Nous vous répondrons au vite.</p>"
  70. else :
  71. form = ContactForm()
  72. context = {
  73. 'page' : page,
  74. 'form' : form,
  75. }
  76. return HttpResponse(template.render(context, request))
  77. def p_login(request):
  78. next = request.GET.get('next','')
  79. page = gen_page_base()
  80. template = loader.get_template('login.html')
  81. if request.method == "POST":
  82. form = AuthenticationForm(request, data=request.POST)
  83. if form.is_valid():
  84. username = request.POST['username']
  85. password = request.POST['password']
  86. user = authenticate(request, username=username, password=password)
  87. if user is not None:
  88. login(request, user)
  89. messages.add_message(request, messages.INFO, 'Bonjour, vous étez maintenant connecté')
  90. if next :
  91. return HttpResponseRedirect(next)
  92. else :
  93. return HttpResponseRedirect(reverse('core_index'))
  94. else :
  95. pass
  96. else :
  97. form = AuthenticationForm(request)
  98. context = {
  99. 'page' : page,
  100. 'form' : form,
  101. }
  102. return HttpResponse(template.render(context, request))
  103. def p_logout(request):
  104. logout(request)
  105. messages.add_message(request, messages.INFO, 'A bientôt')
  106. return HttpResponseRedirect(reverse('core_index'))
  107. def p_registration(request):
  108. page = gen_page_sys("inscription-sur-le-site")
  109. template = loader.get_template('page.html')
  110. page.p_f_titre = "Inscription"
  111. if request.method == "POST":
  112. form = UserCreationForm(request.POST)
  113. if form.is_valid():
  114. username = form.cleaned_data['username']
  115. password = form.cleaned_data['password1']
  116. user=User.objects.create_user(username=username, password=password)
  117. user.save()
  118. user = authenticate(username=username, password=password)
  119. login(request, user)
  120. messages.add_message(request, messages.INFO, 'Merci pour votre inscription')
  121. return HttpResponseRedirect(reverse('flux_control_panel'))
  122. else :
  123. form = UserCreationForm()
  124. context = {
  125. 'page' : page,
  126. 'form' : form,
  127. }
  128. return HttpResponse(template.render(context, request))