Changeset a4764f9 in firmaeventos
- Timestamp:
- Nov 21, 2017, 11:37:13 AM (6 years ago)
- Branches:
- master
- Children:
- 7c18408
- Parents:
- b8fffff
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
rbf47591 ra4764f9 14 14 eventos/migrations 15 15 participantes/migrations 16 sources/tmp/*.pdf 17 sources/tmp/*.jpg 18 sources/tmp/*.tmp 19 sources/tmp/*.png 20 sources/tmp/*.bmp 21 sources/tmp/*.*~ 16 22 *.*.backup 17 23 *.*~ -
FirmaEventos/default.settings.py
r3397a08 ra4764f9 94 94 'NAME': 'firma_eventos', 95 95 'USER': 'postgres', 96 'PASSWORD': ' 123456',96 'PASSWORD': 'postgres', 97 97 'HOST': 'localhost', 98 98 'PORT': '5432', … … 139 139 MEDIA_URL = '/sources/' 140 140 141 TMP = os.path.join(MEDIA_ROOT, 'tmp') 142 141 143 # Static files (CSS, JavaScript, Images) 142 144 # https://docs.djangoproject.com/en/1.8/howto/static-files/ … … 154 156 # Configuración para el logeo de usuarios 155 157 156 LOGIN_URL = "/ "158 LOGIN_URL = "/login" 157 159 158 160 LOGOUT_URL= "/logout" -
eventos/forms.py
rd3c0ab7 ra4764f9 42 42 self.fields['archivo'].widget.attrs.update( 43 43 {'class': 'file-path validate', 44 'placeholder': 'Subir Archivo'}) 44 'placeholder': 'Subir Archivo', 45 'accept': '.pdf'}) 45 46 46 47 class FirmaEventoForm(forms.Form): … … 53 54 @version 1.0.0 54 55 """ 55 56 56 pasaporte = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control','placeholder':'Ingrese su pasaporte'})) -
eventos/models.py
r5dea5ff ra4764f9 13 13 nombre_evento = models.CharField(max_length=128, unique=True) 14 14 fecha = models.DateField(null=False) 15 serial = models. IntegerField(unique=True)15 serial = models.CharField(max_length=128, unique=True) 16 16 activo = models.BooleanField(default=True) 17 17 -
eventos/templates/register.event.html
r94b3e3f ra4764f9 11 11 // Django appears to generate the prefix from the lowercase plural 12 12 // name of the related model, with camel-case converted to underscores. 13 prefix: 'form' 13 prefix: 'form', 14 addText:'<i class="tiny material-icons prefix">add_circle_outline</i>Agregar Participante', 15 deleteText:'<i class="material-icons">delete_forever</i>', 14 16 }) 17 15 18 $('.datepicker').pickadate({ 16 19 selectMonths: true, // Creates a dropdown to control month … … 21 24 closeOnSelect: false, // Close upon selecting a date, 22 25 format: "dd/mm/yyyy", 26 // The title label to use for the month nav buttons 27 labelMonthNext: 'Mes siguiente', 28 labelMonthPrev: 'Mes anterior', 29 30 // The title label to use for the dropdown selectors 31 labelMonthSelect: 'Selecciona un mes', 32 labelYearSelect: 'Selecciona un año', 33 34 // Months and weekdays 35 monthsFull: [ 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' ], 36 monthsShort: [ 'Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic' ], 37 weekdaysFull: [ 'Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado' ], 38 weekdaysShort: [ 'Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab' ], 39 40 // Materialize modified 41 weekdaysLetter: [ 'D', 'L', 'M', 'Mi', 'J', 'V', 'S' ], 42 43 // Today and clear 44 today: 'Hoy', 45 clear: 'Limpiar', 46 close: 'Ok', 23 47 }); 24 48 }) … … 29 53 <div class="content center"> 30 54 <h5>Datos del Evento</h5><hr/><br> 31 <form id="form" method="post" >55 <form id="form" method="post" enctype="multipart/form-data"> 32 56 {% csrf_token %} 33 57 <div class="input-field {% if form.nombre_evento.errors %}invalid{% endif %}"> … … 48 72 <div class="btn"> 49 73 <span for="icon_prefix {{ form.archivo.auto_id }}">Archivo</span> 50 <input type="file" >74 <input type="file" name="file" id="file" accept=".pdf"> 51 75 </div> 52 76 <div class="file-path-wrapper"> -
eventos/views.py
rb8fffff ra4764f9 1 import random 1 # -*- encoding: utf-8 -*- 2 3 import os 4 import requests 5 from django.conf import settings 2 6 from django.contrib import messages 3 7 from django.contrib.auth.mixins import LoginRequiredMixin 8 from django.core.files.base import ContentFile 9 from django.core.files.storage import default_storage 4 10 from django.core.urlresolvers import reverse_lazy 5 11 from django.shortcuts import ( 6 re nder, redirect, get_object_or_40412 redirect 7 13 ) 8 14 from django.views.generic import ListView, FormView … … 19 25 ) 20 26 27 28 def handle_uploaded_file(file, name): 29 with open('%s/%s' % (settings.TMP, name), 'wb+') as destination: 30 for chunk in file.chunks(): 31 destination.write(chunk) 21 32 22 33 class RegisterEvent(LoginRequiredMixin, FormView): … … 44 55 45 56 def post(self, request, *args, **kwargs): 46 nuevo_evento = self.form_class(request.POST).save(commit=False) 47 nuevo_participante = self.form_participante(request.POST) 48 consulta_api = random.randrange(0, 500) 49 if self.form_class(request.POST).is_valid() and nuevo_participante.is_valid(): 50 nuevo_evento.serial = consulta_api 51 nuevo_evento.save() 52 #nuevo_participante.save() 53 # Control para guardar y asignar participante al evento 54 for form in nuevo_participante: 55 if form.cleaned_data.get('DELETE') and form.instance.pk: 56 form.instance.delete() 57 else: 58 instance = form.save(commit=False) 59 parametros = { 60 'nombres': instance.nombres, 61 'apellidos': instance.apellidos, 62 'correo': instance.correo 63 } 64 nuevo_participante, create= Participante.objects.update_or_create(pasaporte=instance.pasaporte, defaults=parametros) 65 #instance.save() 66 asigna_evento = ParticipanteEvento(fk_participante=nuevo_participante, 67 fk_evento=nuevo_evento) 68 print(asigna_evento.pk) 69 asigna_evento.save() 70 messages.success(self.request, "El usaurio %s, ha creado con exito,\ 71 un nuevo envento %s" % 72 (str(self.request.user), 73 str(nuevo_evento))) 74 else: 75 messages.error(self.request, "Existe un error en el Formualario %s" % 76 (str(self.form_class.errors, self.form_participante.errors))) 57 nuevo_evento = self.form_class(request.POST, request.FILES).save(commit=False) 58 file = request.FILES['file'] 59 handle_uploaded_file(request.FILES['file'], file) 60 ruta = '%s/%s' % (settings.TMP, file) 61 files = {'file': open(ruta, 'rb')} 62 try: 63 r = requests.post('https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/cargar', verify=False, headers={'Authorization': 'Basic YWRtaW46YWRtaW4='}, files=files) 64 nuevo_participante = self.form_participante(request.POST) 65 consulta_api = r.json()['fileId'] 66 # elimina el archivo si fue creado en la carpeta tmp 67 os.unlink(ruta) 68 except Exception as e: 69 print (e) 70 messages.error(self.request, "Error al concetar al servidor y subir\ 71 el archivo a la api Murachi") 72 return redirect(self.success_url) 73 try: 74 if self.form_class(request.POST).is_valid() and nuevo_participante.is_valid(): 75 nuevo_evento.serial = consulta_api 76 nuevo_evento.save() 77 # Control para guardar y asignar participantes al evento 78 for form in nuevo_participante: 79 if form.cleaned_data.get('DELETE') and form.instance.pk: 80 form.instance.delete() 81 else: 82 instance = form.save(commit=False) 83 parametros = { 84 'nombres': instance.nombres, 85 'apellidos': instance.apellidos, 86 'correo': instance.correo 87 } 88 nuevo_participante, create = Participante.objects.update_or_create(pasaporte=instance.pasaporte, defaults=parametros) 89 asigna_evento = ParticipanteEvento( 90 fk_participante=nuevo_participante, 91 fk_evento=nuevo_evento) 92 asigna_evento.save() 93 messages.success(self.request, "El usaurio %s, ha creado con exito,\ 94 un nuevo envento %s" % 95 (str(self.request.user), 96 str(nuevo_evento))) 97 else: 98 messages.error(self.request, "Existe un error en el\ 99 Formualario %s %s" % 100 (self.form_class(request.POST).errors, 101 self.form_participante(request.POST).errors)) 102 except Exception as e: 103 print (e) 104 messages.error(self.request, "Esta intentado realizar una\ 105 accion incorrecta") 106 77 107 return redirect(self.success_url) 78 108 -
users/views.py
r5dea5ff ra4764f9 62 62 usuario = form.cleaned_data['usuario'] 63 63 contrasena = form.cleaned_data['contrasena'] 64 64 try: 65 validate_email(usuario) 66 try: 67 usuario = User.objects.get(email=usuario).username 68 except: 69 messages.error(self.request, 'No existe este correo: %s \ 70 asociado a una cuenta' % (usuario)) 71 except Exception as e: 72 print (e) 73 65 74 usuario = authenticate(username=usuario, password=contrasena) 66 75 if usuario is not None:
Note: See TracChangeset
for help on using the changeset viewer.