Changeset 94b3e3f in firmaeventos


Ignore:
Timestamp:
Nov 20, 2017, 3:47:37 PM (6 years ago)
Author:
lhernandez <lhernandez@…>
Branches:
master
Children:
16cf088
Parents:
c9f75d7
Message:

Implementado registro de eventos

Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • eventos/forms.py

    r8fa24c3 r94b3e3f  
    11
    22from django import forms
     3from django.forms.fields import (
     4    CharField, BooleanField
     5)
    36
    47from .models import *
     
    1417    @version 1.0.0
    1518    """
    16     archivo = forms.FileField(widget=forms.ClearableFileInput(
    17                               attrs={'multiple': False}))
    18 
     19    #archivo = forms.FileField(widget=forms.ClearableFileInput(
     20                              #attrs={'multiple': False}))
     21    archivo = CharField()
    1922    class Meta:
    2023        """!
     
    3437        self.fields['fecha'].widget.attrs.update(
    3538            {'class': 'datepicker',
    36              'placeholder': 'Fecha'})
     39             'placeholder': 'Fecha',
     40             'readonly':
     41             'readonly'})
    3742        self.fields['archivo'].required=True
    3843        self.fields['archivo'].widget.attrs.update(
    39             {'class': 'file-path',
    40              'placeholder': 'Subir Archivo'})
     44            {
     45            'class': 'file-path validate',
     46            'placeholder': 'Subur un archivo'})
  • eventos/templates/register.event.html

    r8fa24c3 r94b3e3f  
    22{% load staticfiles %}
    33{% block title %}Registrar Evento{% endblock title %}
     4{% block extraJs %}
     5    <script src="{% static "js/formset.js" %}"></script>
     6    <script type="text/javascript">
     7    $(function() {
     8        $('#id_orders_table tbody tr').formset({
     9            // For inline formsets, be sure to set the prefix, as the default prefix
     10            // ('form') isn't correct.
     11            // Django appears to generate the prefix from the lowercase plural
     12            // name of the related model, with camel-case converted to underscores.
     13            prefix: 'form'
     14        })
     15          $('.datepicker').pickadate({
     16            selectMonths: true, // Creates a dropdown to control month
     17            selectYears: 15, // Creates a dropdown of 15 years to control year,
     18            today: 'Today',
     19            clear: 'Clear',
     20            close: 'Ok',
     21            closeOnSelect: false, // Close upon selecting a date,
     22            format: "dd/mm/yyyy",
     23          });
     24    })
     25    </script>
     26{%endblock%}
     27
    428{% block content %}
    529    <div class="content center">
     30        <h5>Datos del Evento</h5><hr/><br>
    631        <form id="form" method="post">
    732            {% csrf_token %}
    8             <div class="input-field {% if forms.event.nombre.errors %}invalid{% endif %}">
    9                 {{ forms.event.nombre }}
    10                 <label for="icon_prefix {{ forms.event.nombre.auto_id }}">Nombre</label>
    11                 {% include 'base.forms.errors.html' with form_errors=forms.event.nombre.errors col_title_error='col s2' col_msg_error='col s10' %}
     33            <div class="input-field {% if form.nombre_evento.errors %}invalid{% endif %}">
     34                {{ form.nombre_evento }}
     35                <label for="icon_prefix {{ form.nombre_evento.auto_id }}">Nombre</label>
     36                {% include 'base.forms.errors.html' with form_errors=form.nombre_evento.errors col_title_error='col s2' col_msg_error='col s10' %}
    1237            </div>
    1338           
    14             <div class="input-field {% if forms.event.fecha.errors %}invalid{% endif %}">
    15                 <i class="material-icons">perm_contact_calendar</i>
    16                 {{ forms.event.fecha }}
    17                 <label for="icon_prefix {{ forms.event.fecha.auto_id }}">Fecha</label>
    18                 {% include 'base.forms.errors.html' with form_errors=forms.event.fecha.errors col_title_error='col s2' col_msg_error='col s10' %}
     39            <div class="input-field {% if form.fecha.errors %}invalid{% endif %}">
     40                <i class="tiny material-icons prefix">perm_contact_calendar</i>
     41                {{ form.fecha }}
     42                <label for="icon_prefix {{ form.fecha.auto_id }}">Fecha</label>
     43                {% include 'base.forms.errors.html' with form_errors=form.fecha.errors col_title_error='col s2' col_msg_error='col s10' %}
    1944            </div>
    2045
    21             <div class="file-field input-field {% if forms.event.archivo.errors %}invalid{% endif %}">
    22                 <i class="material-icons">attachment</i>
     46            <div class="file-field input-field {% if form.archivo.errors %}invalid{% endif %}">
     47               
     48                <div class="btn">
     49                <span for="icon_prefix {{ form.archivo.auto_id }}">Archivo</span>
     50                    <input type="file">
     51                </div>
    2352                <div class="file-path-wrapper">
    24                     {{ forms.event.archivo }}
     53                    {{ form.archivo }}
    2554                </div>
    26                 <label for="icon_prefix {{ forms.event.archivo.auto_id }}">Archivo</label>
    27                 {% include 'base.forms.errors.html' with form_errors=forms.event.archivo.errors col_title_error='col s2' col_msg_error='col s10' %}
     55                {% include 'base.forms.errors.html' with form_errors=form.archivo.errors col_title_error='col s2' col_msg_error='col s10' %}
    2856            </div>
    29            
     57            <h5>Datos de los Participantes</h5><hr/><br>
     58            <table class="striped" id="id_orders_table">
     59                <thead>
     60                  <tr>
     61                      <th scope="col">Nombres</th>
     62                      <th scope="col">Apellidos</th>
     63                      <th scope="col">Pasaporte</th>
     64                      <th scope="col">Correo</th>
     65                      <th scope="col">Opcion</th>
     66                  </tr>
     67                </thead>
     68                <tbody>
     69                {{ form2.management_form }}
     70                {% for form in form2  %}
     71                <tr id="{{ form.prefix }}-row">
     72                  <td>
     73                  {{form.nombres}}
     74                  </td>
     75                  <td>
     76                  {{form.apellidos}}
     77                  </td>
     78                  <td>
     79                  {{form.pasaporte}}
     80                  </td>
     81                  <td>
     82                  {{form.correo}}
     83                  </td>
     84                  <td></td>
     85                </tr>
     86                {% endfor %}
     87                </tbody>
     88            </table>
    3089            <div>
    3190                <button type="submit" class="btn waves-effect red darken-1">Registrar</button>
  • eventos/views.py

    r8fa24c3 r94b3e3f  
    1 from django.shortcuts import render
     1from django.contrib import messages
     2from django.core.urlresolvers import reverse_lazy
     3from django.shortcuts import (
     4    render, redirect, get_object_or_404
     5)
    26from multi_form_view import MultiModelFormView
     7from django.views.generic import FormView
    38
    49from .forms import *
     
    712)
    813
    9 class RegisterEvent(MultiModelFormView):
     14class RegisterEvent(FormView):
    1015    """!
    1116    Muestra el formulario de registro de usuarios
     
    1621    @version 1.0.0
    1722    """
     23
    1824    template_name = "register.event.html"
    19     form_classes = {
    20       'event': EventoForm,
    21       'participante': FormsetParticipanteEvento,
    22     }
    23     #success_url = reverse_lazy('users:home')
    24     record_id=None
     25    form_class = EventoForm
     26    form_participante = FormsetParticipanteEvento
     27    success_url = reverse_lazy('base:inicio')
     28
     29    def get_context_data(self, **kwargs):
     30        context = super(RegisterEvent, self).get_context_data(**kwargs)
     31        if 'form' not in context:
     32            context['form'] = self.form_class()
     33        if 'form2' not in context:
     34            context['form2'] = self.form_participante
     35        return context
     36
     37    def post(self, request, *args, **kwargs):
     38        nuevo_evento = self.form_class(request.POST).save(commit=False)
     39        nuevo_participante = self.form_participante(request.POST)
     40        consulta_api = 1
     41        if self.form_class(request.POST).is_valid() and nuevo_participante.is_valid():
     42            nuevo_evento.serial = consulta_api
     43            nuevo_evento.save()
     44            nuevo_participante.save()
     45            messages.success(self.request, "El usaurio %s, ha creado con exito,\
     46                                        un nuevo envento %s" %
     47                         (str(self.request.user),
     48                          str(nuevo_evento)))
     49        else:
     50            messages.error(self.request, "Existe un error en el Formualario %s" %
     51                         (str(self.form_class.errors, self.form_participante.errors)))
     52        return redirect(self.success_url)
  • participantes/forms.py

    r8fa24c3 r94b3e3f  
    22from django.core.exceptions import NON_FIELD_ERRORS
    33from django.forms import (
    4        inlineformset_factory, modelform_factory
     4       inlineformset_factory, modelform_factory, modelformset_factory, formset_factory
    55   )
    66
     
    2626        """
    2727        model = Participante
    28         fields=('nombres', 'apellidos', 'pasaporte', 'correo')
     28        fields=['nombres', 'apellidos', 'pasaporte', 'correo']
    2929
    3030    def __init__(self, *args, **kwargs):
     
    9090                                    fields=('nombres', 'apellidos',
    9191                                            'pasaporte', 'correo'))
     92
     93FormsetParticipanteEvento = modelformset_factory(Participante, form=FormsetParticipanteEvento, fields=('nombres', 'apellidos',
     94                                            'pasaporte', 'correo'),
     95                                    extra=1)
     96
     97#FormsetParticipanteEvento= FormsetParticipanteEvento(queryset=Participante.objects.none())
Note: See TracChangeset for help on using the changeset viewer.