Changeset 9c25cd2 in firmaeventos


Ignore:
Timestamp:
Nov 29, 2017, 8:34:01 AM (6 years ago)
Author:
lhernandez <lhernandez@…>
Branches:
master
Children:
fcce998
Parents:
a3deb5f
Message:

Se acomodo el bug en el registro de participantes vacios al evento

Location:
eventos
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • eventos/forms.py

    rd9b20e6 r9c25cd2  
    6565
    6666class UpdateFileEventoForm(forms.Form):
     67    """!
     68    Clase que permite crear el formulario para subir un documento a un evento
     69
     70    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
     71    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
     72    @date 19-11-2017
     73    @version 1.0.0
     74    """
    6775    archivo = CharField()
    6876    pos_x = CharField()
     
    92100        self.fields['pag'].required = True
    93101        self.fields['pag'].widget = forms.HiddenInput()
     102
     103
     104class UpdateEventoForm(forms.ModelForm):
     105    """!
     106    Clase que permite crear el formulario para el update del evento
     107
     108    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
     109    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
     110    @date 28-11-2017
     111    @version 1.0.0
     112    """
     113    class Meta:
     114        """!
     115            Clase que construye los meta datos del formulario
     116        """
     117        model = Evento
     118        fields = ['nombre_evento', 'fecha']
     119
     120    def __init__(self, *args, **kwargs):
     121        """!
     122            Funcion que construye los valores iniciales del formulario update evento
     123        """
     124        super(UpdateEventoForm, self).__init__(*args, **kwargs)
     125        self.fields['nombre_evento'].widget.attrs.update(
     126            {'class': 'form-control',
     127             'placeholder': 'Nombre del evento'})
     128        self.fields['fecha'].widget.attrs.update(
     129            {'class': 'datepicker',
     130             'placeholder': 'Fecha',
     131             'readonly':
     132             'readonly'})
  • eventos/templates/evento.list.html

    rd9b20e6 r9c25cd2  
    2929                </a>
    3030                {% else %}
    31                 <a type="button" class="btn waves-effect blue darken-1" href="{% url 'events:update_evento' evento.id %}">
    32                     <i class="material-icons left">backup</i> Cargar Documento
    33                 </a>
     31                    {% if request.user.is_authenticated %}
     32                        <a type="button" class="btn waves-effect blue darken-1" href="{% url 'events:update_evento' evento.id %}">
     33                            <i class="material-icons left">backup</i> Cargar Documento
     34                        </a>
     35                    {% endif %}
     36                {% endif %}
     37                {% if request.user.is_authenticated %}
     38                    <a type"button" class="btn waves-effect blue darken-1" href="{% url  'events:update_evento_participante' evento.id %}"><i class="material-icons left">border_color</i>Editar Evento
     39                    </a>
    3440                {% endif %}
    3541            </div>
  • eventos/urls.py

    rd9b20e6 r9c25cd2  
    2020    url(r'^actualizar-evento/(?P<event_id>\d+)$', UpdateFileEvent.as_view(),
    2121        name='update_evento'),
     22    url(r'^actualizar-evento-participantes/(?P<pk>[\w-]+)$', UpdateEventView.as_view(),
     23        name='update_evento_participante'),
    2224]
  • eventos/views.py

    rc152e07 r9c25cd2  
    1919    ListView, FormView
    2020)
     21from django.views.generic.edit import UpdateView
    2122from django.views.generic.detail import DetailView
    2223
     
    8485                return redirect(self.success_url)
    8586        try:
    86            
     87
    8788            if self.form_class(request.POST).is_valid() and nuevo_participante.is_valid():
    8889                nuevo_evento = self.form_class(request.POST, request.FILES).save(commit=False)
    8990                nuevo_evento.serial = consulta_api
     91                # Control para guardar y asignar participantes al evento
     92                for form in nuevo_participante:
     93                    instance = form.save(commit=False)
     94                    if instance.nombres == '' or instance.apellidos == '' or instance.pasaporte == '':
     95                        messages.error(self.request, "Ninguno de los campos del\
     96                                                      participante puede estar\
     97                                                      vacio excepto el correo")
     98                        return redirect(self.success_url)
    9099                nuevo_evento.save()
    91                 # Control para guardar y asignar participantes al evento
    92100                for form in nuevo_participante:
    93101                    if form.cleaned_data.get('DELETE') and form.instance.pk:
     
    332340                                          configuración de la firma")
    333341        return redirect(self.success_url)
     342
     343
     344class UpdateEventView(LoginRequiredMixin, UpdateView):
     345    """!
     346    Clase que permite actualizar los datos de un evento
     347
     348    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
     349    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
     350    @date 28-11-2017
     351    @version 1.0.0
     352    """
     353    model = Evento
     354    form_class = UpdateEventoForm
     355    template_name = 'evento.update.participantes.html'
     356    success_url = reverse_lazy('events:list_events')
     357    form_participante = FormsetParticipanteEvento
     358
     359    def get_context_data(self, **kwargs):
     360        context = super(UpdateEventView, self).get_context_data(**kwargs)
     361        if 'form' not in context:
     362            context['form'] = self.form_class()
     363        if 'form2' not in context:
     364            evento = int(self.kwargs['pk'])
     365            participante_evento = Participante.objects.filter(participanteevento__fk_evento=evento)
     366            context['form2'] = self.form_participante(queryset=participante_evento)
     367        return context
     368
     369    def post(self, request, *args, **kwargs):
     370        print('entra en el valid')
     371        evento = int(self.kwargs['pk'])
     372        update_participante = self.form_participante(request.POST)
     373        print(update_participante)
     374        if self.form_class(request.POST).is_valid() and update_participante.is_valid():
     375            evento = self.model.objects.get(pk=evento)
     376            update_evento = self.form_class(request.POST, instance=evento).save(commit=False)
     377            update_evento.save()
     378
     379        # Control para guardar y asignar participantes al evento
     380
     381            for form in update_participante:
     382                if form.cleaned_data.get('DELETE') and form.instance.pk:
     383                    form.instance.delete()
     384                else:
     385                    instance = form.save(commit=False)
     386                    parametros = {
     387                                    'nombres': instance.nombres,
     388                                    'apellidos': instance.apellidos,
     389                                    'correo': instance.correo
     390                                    }
     391                    update_participante, create = Participante.objects.update_or_create(pasaporte=instance.pasaporte, defaults=parametros)
     392                    asigna_evento = ParticipanteEvento(
     393                                    fk_participante=update_participante,
     394                                    fk_evento=update_evento)
     395                    #asigna_evento.save()
     396
     397            messages.success(request, "Se actualizó el evento %s" % (update_evento))
     398        return redirect(self.success_url)
     399        #return super(UpdateEventView, self).form_valid(form)
     400
     401    #def form_invalid(self, form, **kwargs):
     402    #    return super(UpdateEventView, self).form_invalid(form)
Note: See TracChangeset for help on using the changeset viewer.