class ConfirmedCaseForm(forms.Form):
    estimated_date_contracted = forms.DateField(
        input_formats=['%Y-%m-%d'],
        widget=XDSoftDatePickerInput(),
        label='Estimated Date Contracted')
    date_first_symptoms = forms.DateField(input_formats=['%Y-%m-%d'],
                                          widget=XDSoftDatePickerInput(),
                                          label='Date of First Symptoms')

    date_confirmed = forms.DateField(input_formats=['%Y-%m-%d'],
                                     widget=XDSoftDatePickerInput(),
                                     label='Date Confirmed')
    additional_info = forms.CharField(widget=BootstrapTextArea(),
                                      label='Additional Information',
                                      max_length=40000,
                                      required=False)

    age_range = forms.ChoiceField(widget=BootstrapSelect(choices=age_ranges),
                                  choices=age_ranges)

    gender = forms.ChoiceField(widget=BootstrapSelect(choices=genders),
                               choices=genders)

    diseases = MultiBinaryField(
        widget=BootstrapMultiBinaryRadio(options=diseases), choices=diseases)
class SpaceTimeForm(forms.Form):
    location = PointField(label='Possible Contagion Site')
    start_date = forms.DateField(input_formats=['%Y-%m-%d'],
                                 widget=XDSoftDatePickerInput(),
                                 label='START')
    end_date = forms.DateField(input_formats=['%Y-%m-%d'],
                               widget=XDSoftDatePickerInput(),
                               label='END')
class ContagionSiteForm(forms.Form):
    location = PointField(label='Possible Contagion Site')
    start_date = forms.DateField(input_formats=['%Y-%m-%d'],
                                 widget=XDSoftDatePickerInput(),
                                 label='START')
    end_date = forms.DateField(input_formats=['%Y-%m-%d'],
                               widget=XDSoftDatePickerInput(),
                               label='END')
    radius = forms.ChoiceField(widget=BootstrapSelect(choices=radii),
                               choices=radii)
Esempio n. 4
0
class RequesterUserInforForm(forms.ModelForm):
    birthday = forms.DateField(label=_('Date of birth'),
                               input_formats=["%d/%m/%Y"])
    ride_experience = forms.ChoiceField(label=_('Ride experience'),
                                        choices=models.REQUESTER_EXPERIENCE)

    class Meta:
        fields = (
            'avatar',
            'first_name',
            'last_name',
            'email',
            'language',
            'country',
            'city_alias',
            'gender',
            'birthday',
            'ride_experience',
        )
        model = models.User

    def save(self, **kwargs):
        city_alias = self.cleaned_data.get('city_alias')
        if city_alias:
            self.instance.city = city_alias.city
        super(RequesterUserInforForm, self).save(**kwargs)
Esempio n. 5
0
class SignupRequesterForm(forms.ModelForm):
    gender = forms.CharField(label=_('Gender'))
    birthday = forms.DateField(label=_('Date of birth'),
                               input_formats=["%d/%m/%Y"])
    ride_experience = forms.ChoiceField(choices=models.REQUESTER_EXPERIENCE)

    class Meta:
        model = models.User
        fields = ('gender', 'birthday', 'ride_experience')
Esempio n. 6
0
    def __init__(self, *args, **kwargs):
        extra = kwargs.pop('extra', None)
        feature = kwargs.pop('feature', None)
        super().__init__(*args, **kwargs)

        for custom_field in extra.order_by('position'):
            if custom_field.field_type == 'boolean':
                self.fields[custom_field.name] = forms.BooleanField(
                    label=custom_field.label,
                    initial=False,
                    required=False,
                )

            if custom_field.field_type == 'char':
                self.fields[custom_field.name] = forms.CharField(
                    label=custom_field.label, max_length=256, required=False)

            if custom_field.field_type == 'date':
                self.fields[custom_field.name] = forms.DateField(
                    label=custom_field.label,
                    required=False,
                )

            if custom_field.field_type == 'integer':
                self.fields[custom_field.name] = forms.IntegerField(
                    label=custom_field.label, required=False)

            if custom_field.field_type == 'decimal':
                self.fields[custom_field.name] = forms.DecimalField(
                    label=custom_field.label,
                    required=False,
                    widget=forms.TextInput(attrs={'localization': False}))

            if custom_field.field_type == 'text':
                self.fields[custom_field.name] = forms.CharField(
                    label=custom_field.label,
                    required=False,
                    widget=forms.Textarea())

            if custom_field.field_type == 'list' and custom_field.options:
                self.fields[custom_field.name] = forms.ChoiceField(
                    label=custom_field.label,
                    choices=[(str(xx), str(xx))
                             for xx in custom_field.options],
                    required=False)

            self.fields[custom_field.name].widget.attrs.update(
                {'field_type': custom_field.field_type})

        if feature and isinstance(feature.feature_data, dict):
            for custom_field in extra:
                self.fields[
                    custom_field.name].initial = feature.feature_data.get(
                        custom_field.name)
Esempio n. 7
0
class AssignmentForm(forms.Form):
    pick_date = forms.DateField()
    drop_date = forms.DateField()

    def __init__(self, user, *args, **kwargs):
        super(AssignmentForm, self).__init__(*args, **kwargs)
        if user.profile.temp_address:
            address = user.profile.temp_address
        else:
            address = user.profile.address
        g = geocoder.mapbox(address, key=MB_KEY)
        p = Point(g.latlng[0], g.latlng[0], srid=4326)
        supply = Supply.objects.annotate(
            distance=Distance('location', p)).order_by('distance')[0:]
        stock = DrugStock.objects.annotate(
            distance=Distance('location', p)).order_by('distance')[0:]
        su = [(q.id, q.address) for q in supply]
        st = [(q.id, q.address) for q in stock]
        self.fields['pick_point'] = forms.ChoiceField(choices=su)
        self.fields['drop_point'] = forms.ChoiceField(choices=st)
Esempio n. 8
0
class CallsignForm(forms.ModelForm):
    issued = forms.DateField(widget=forms.TextInput(attrs={'type': 'date'}),
                             required=False)
    location = forms.PointField(
        srid=4326,
        widget=forms.OSMWidget(attrs={
            'map_width': 785,
            'map_height': 500,
            'default_zoom': 12
        }))

    class Meta:
        model = Callsign
        fields = ["type", "location", 'cq_zone', "itu_zone", "dstar", "issued"]
Esempio n. 9
0
class SignupBikeanjoForm(forms.ModelForm):
    gender = forms.CharField(label=_('Gender'))
    birthday = forms.DateField(label=_('Date of birth'),
                               input_formats=["%d/%m/%Y"])
    ride_experience = forms.ChoiceField(label=_('Ride experience'),
                                        choices=models.BIKEANJO_EXPERIENCE)
    bike_use = forms.ChoiceField(label=_('Bike user'), choices=models.BIKE_USE)
    initiatives = forms.CharField(label=_('Initiatives'),
                                  required=False,
                                  max_length=256)

    class Meta:
        model = models.User
        fields = ('gender', 'birthday', 'ride_experience', 'bike_use',
                  'initiatives')
Esempio n. 10
0
class BikeanjoUserInforForm(forms.ModelForm):
    birthday = forms.DateField(label=_('Date of birth'),
                               input_formats=["%d/%m/%Y"])

    class Meta:
        fields = (
            'avatar',
            'first_name',
            'last_name',
            'email',
            'language',
            'country',
            'city_alias',
            'gender',
            'birthday',
        )
        model = models.User

    def save(self, **kwargs):
        city_alias = self.cleaned_data.get('city_alias')
        if city_alias:
            self.instance.city = city_alias.city
        super(BikeanjoUserInforForm, self).save(**kwargs)
Esempio n. 11
0
class EmpleadoForm(forms.Form):

    cedula = forms.CharField(required=False, label=u'Cédula')
    nombres = forms.CharField(max_length=250,
                              widget=forms.TextInput(attrs={'size': '30'}))
    apellido_paterno = forms.CharField(
        max_length=250, widget=forms.TextInput(attrs={'size': '30'}))
    apellido_materno = forms.CharField(
        max_length=250,
        widget=forms.TextInput(attrs={'size': '30'}),
        required=False)

    pais = forms.ModelChoiceField(
        queryset=Pais.objects.all(),
        empty_label="Escoger un pais",
        widget=forms.Select(attrs={
            'placeholder': 'País',
            'onChange': "getProvincias(this.value)"
        }))
    provincia = forms.ModelChoiceField(
        queryset=Provincia.objects.none(),
        empty_label="Escoger una provincia",
        widget=forms.Select(
            attrs={
                'placeholder': 'Provincia o estado',
                'onChange': "getCiudades(this.value)"
            }))
    ciudad = forms.ModelChoiceField(
        queryset=Ciudad.objects.none(),
        empty_label="Escoger una ciudad",
        widget=forms.Select(attrs={'placeholder': 'Ciudad o Cantón'}))

    sexo = forms.ChoiceField(choices=PersonaNatural.SEXO_CHOICES,
                             required=True)
    fecha_nacimiento = forms.DateField(required=False)
    observaciones = forms.CharField(widget=forms.Textarea())
    usuario = forms.CharField(max_length=13,
                              widget=forms.TextInput(attrs={'size': '30'}))
    contrasenia = forms.CharField(
        max_length=13, widget=forms.PasswordInput(attrs={'size': '30'}))
    email = forms.EmailField(max_length=25,
                             widget=forms.TextInput(attrs={'size': '30'}))
    plazas_trabajo = forms.ModelMultipleChoiceField(
        queryset=PlazaTrabajo.objects.all(), widget=forms.SelectMultiple)
    foto = forms.ImageField(required=False)

    def modificarQuerySet(self, pais_id, provincia_id):
        if pais_id not in ('', None):
            self.fields['provincia'].queryset = Provincia.objects.filter(
                pais__id=pais_id)

        if provincia_id not in ('', None):
            self.fields['ciudad'].queryset = Ciudad.objects.filter(
                provincia__id=provincia_id)

    def save(self, empleado=None):
        cleaned_data = super(EmpleadoForm, self).clean()

        if empleado is None:
            persona = Persona()
            persona.tipo = Persona.TIPO_PERSONA_NATURAL
            persona.observaciones = cleaned_data["observaciones"]
            persona.ruc = cleaned_data["cedula"]
            persona.nombre_comercial = ""
            persona.save()

            usuario = User()
            usuario.username = cleaned_data["usuario"]
            usuario.set_password(cleaned_data["contrasenia"])
            usuario.email = cleaned_data["email"]
            usuario.save()

            persona_natural = PersonaNatural()
            persona_natural.ciudad_nacimiento = cleaned_data['ciudad']
            persona_natural.cedula = cleaned_data["cedula"]
            persona_natural.nombres = cleaned_data["nombres"]
            persona_natural.apellido_paterno = cleaned_data["apellido_paterno"]
            persona_natural.apellido_materno = cleaned_data["apellido_materno"]
            persona_natural.persona = persona
            persona_natural.sexo = cleaned_data["sexo"]
            persona_natural.fecha_nacimiento = cleaned_data["fecha_nacimiento"]
            persona_natural.save()

            empleado = Empleado()
            empleado.persona = persona_natural
            empleado.usuario = usuario
            empleado.foto = cleaned_data["foto"]
            empleado.observaciones = cleaned_data["observaciones"]
            empleado.save()
            empleado.plazas_trabajo = cleaned_data["plazas_trabajo"]
            empleado.save()
        else:
            empleado.persona.nombres = cleaned_data["nombres"]
            empleado.persona.apellido_paterno = cleaned_data[
                "apellido_paterno"]
            empleado.persona.apellido_materno = cleaned_data[
                "apellido_materno"]
            empleado.persona.sexo = cleaned_data["sexo"]
            empleado.persona.cedula = cleaned_data["cedula"]
            empleado.persona.ciudad_nacimiento = cleaned_data["ciudad"]
            empleado.persona.save()

            empleado.usuario.email = cleaned_data["email"]
            empleado.usuario.save()

            empleado.foto = cleaned_data["foto"]
            empleado.observaciones = cleaned_data["observaciones"]
            empleado.save()

            empleado.plazas_trabajo = cleaned_data["plazas_trabajo"]
            empleado.save()

        return empleado

    def clean_usuario(self):
        if self.cleaned_data['usuario']:
            p = User.objects.filter(username=self.cleaned_data['usuario'])
            if len(p) > 0:
                raise forms.ValidationError(
                    _("Ya esxiste un usuario con este username"))
        return self.cleaned_data['usuario']