def crear(request, dia, mes, anio): """ crear una actividad via post """ fecha = datetime(year=int(anio), month=int(mes), day=int(dia)) #empleado = Empleado.objects.get(pk=1) try: empleado = request.user.profile except Empleado.DoesNotExist: raise Http404 if request.method == 'POST': f = ActividadForm(fecha, empleado, request.POST) if f.is_valid(): new_actividad = f.save(commit=False) #new_actividad.fecha_hora = f.cleaned_data['fecha_hora'] new_actividad.empleado = empleado # grabar el formset new_actividad.save() recursos_formset = RecursosFormSet(request.POST, instance=new_actividad) if recursos_formset.is_valid(): recursos_formset.save() else: messages.error(request, f.errors) # en el peor de los casos return HttpResponseRedirect("/actividades/calendario")
def editar(request, id_actividad): """ ver una actividad via ajax """ actividad = Actividad.objects.get(pk=id_actividad) empleado = request.user.profile # interesante esto, se debe a que el models tiene un static que genera el profile f = ActividadForm(actividad.fecha_hora, empleado, instance=actividad) formset = RecursosFormSet(instance=actividad) if request.method == 'POST': f = ActividadForm(actividad.fecha_hora, empleado, request.POST, instance=actividad) recursos_formset = RecursosFormSet(request.POST, instance=actividad) if f.is_valid() and recursos_formset.is_valid(): #actividad = f.save(commit=False) #new_actividad.fecha_hora = f.cleaned_data['fecha_hora'] #new_actividad.empleado = empleado # grabar el formset actividad.save() recursos_formset.save() messages.success(request, 'Actividad Actualizada.') # en el peor de los casos return HttpResponseRedirect("/actividades/calendario") context = {'form_agregar_act': f, 'recursos_formset': formset, 'empleado': empleado, 'actividad': actividad} return render_to_response('editar.html', context_instance=RequestContext(request, context))
def test_SubprogramaForm_crear_sin_estatus(self): form = ActividadForm( data={ 'programa': self.programa.id, 'nombre': 'ejemplo', 'presupuesto': 5000, 'responsable': self.usuario.id, 'estatus': 'ACT', }) self.assertTrue(form.is_valid())