class ActividadForm(ModelForm): def __init__(self, *args, **kwargs): self.edit = kwargs.pop('edit', None) self.id = kwargs.pop('id', None) super(ActividadForm, self).__init__(*args, **kwargs) #Definicion de elementos necesarios self.actividadServicio= ActividadServicios() class Meta: model = Actividad exclude = ['estadoActividad', 'fecha_creacion'] atributos = {'data-placeholder': "Seleccionar", 'class': "chzn-select", 'tabindex': "2"} actividad = {'title': 'Titulo para identificar la actividad', 'class': 'span8 text-tip'} descripcion = {'rows': '8', 'class': 'span8'} responsables = {'class': 'chzn-select', 'multiple': '', 'tabindex': '15', 'style': 'width:300px'} widgets = { 'tipoActividad': forms.Select(attrs=atributos), 'titulo': forms.TextInput(attrs=actividad), 'descripcion': forms.Textarea(attrs=descripcion), 'responsables': forms.SelectMultiple(attrs=responsables), } def clean(self): form = super(ActividadForm, self).clean() inicio = form.get("inicio") fin = form.get("fin") if not self.edit: if (not (fin >= date.today() and inicio >= date.today() and inicio <= fin)): raise forms.ValidationError("Las fechas deben ser mayores a la actual") return form def save(self, commit=True): if not self.edit: #TODO: validar que la actividad tenga por lo menos un responsable. actividad = super(ActividadForm, self).save(commit=False) actividad.estadoActividad = EstadoActividad.ACTIVA self.actividadServicio.insert(actividad) self.save_m2m() notificacionesUtil=NotificacionesUtil() notificacionesUtil.notificarNuevaActividad(actividad); correoUtil=CorreoUtil() correoUtil.correoCreacionActividad(actividad, actividad.responsables.all()) else: actividad = super(ActividadForm, self).save(commit=False) self.save_m2m() self.actividadServicio.update(actividad)
def __init__(self, *args, **kwargs): self.edit = kwargs.pop('edit', None) self.id = kwargs.pop('id', None) super(ActividadForm, self).__init__(*args, **kwargs) #Definicion de elementos necesarios self.actividadServicio= ActividadServicios()