Exemple #1
0
 class Meta:
     model = Production
     exclude = ()
     widgets = {'so': autocomplete.ModelSelect2(url='openso-autocomplete')}
Exemple #2
0
	class Meta:
		model = Profile
		fields = ['image', 'organization', 'position', 'degree', 'biography', 'link', 'ORCID']
		widgets = {
			'organization': autocomplete.ModelSelect2(url='organization-autocomplete')
		}
Exemple #3
0
class PartnershipFilterForm(forms.Form):
    # UCL

    ucl_entity = EntityChoiceField(
        label=_('faculty_entity_filter'),
        queryset=EntityProxy.objects.ucl_entities(),
        empty_label=_('ucl_entity'),
        required=False,
        widget=autocomplete.ModelSelect2(
            url='partnerships:autocomplete:ucl_entity_filter',
            attrs={
                'data-width': '100%',
                'data-reset': '#id_years_entity,#id_university_offer',
            },
        ),
    )
    ucl_entity_with_child = forms.BooleanField(
        label=_('Include subordinate entities'),
        required=False,
    )

    education_level = forms.ModelChoiceField(
        label=_('education_level_filter'),
        queryset=PartnershipYearEducationLevel.objects.filter(
            partnerships_years__isnull=False).distinct(),
        widget=autocomplete.ModelSelect2(
            attrs={
                'data-width': '100%',
                'class': 'resetting',
                'data-reset': '#id_university_offer',
            }),
        required=False,
    )

    years_entity = forms.ModelChoiceField(
        label=_('entity_filter'),
        queryset=EntityProxy.objects.year_entities(),
        required=False,
        widget=autocomplete.ModelSelect2(
            url='partnerships:autocomplete:years_entity_filter',
            forward=['ucl_entity'],
            attrs={
                'data-width': '100%',
                'class': 'resetting',
                'data-reset': '#id_university_offer',
            },
        ),
    )

    university_offer = forms.ModelChoiceField(
        label=_('university_offers_filter'),
        queryset=(
            EducationGroupYear.objects.select_related('academic_year').filter(
                partnerships__isnull=False).distinct()),
        required=False,
        widget=autocomplete.ModelSelect2(
            url='partnerships:autocomplete:university_offers_filter',
            forward=['ucl_entity', 'education_level', 'years_entity'],
            attrs={'data-width': '100%'},
        ),
    )

    # Partner
    partner_entity = forms.ModelChoiceField(
        label=_('partner_entity'),
        queryset=EntityProxy.objects.partners_having_partnership(),
        empty_label=_('partner_entity'),
        widget=autocomplete.ModelSelect2(
            attrs={'data-width': '100%'},
            url='partnerships:autocomplete:partner_entity_partnerships_filter',
        ),
        required=False,
    )
    partner_type = forms.ChoiceField(
        label=_('partner_type'),
        choices=((None, '---------'), ) + ORGANIZATION_TYPE,
        required=False,
    )
    erasmus_code = forms.CharField(
        label=_('erasmus_code'),
        widget=forms.TextInput(attrs={'placeholder': _('erasmus_code')}),
        required=False,
    )
    use_egracons = forms.NullBooleanField(
        label=_('use_egracons'),
        widget=CustomNullBooleanSelect(),
        required=False,
    )
    city = forms.ChoiceField(
        label=_('city'),
        choices=((None, _('city')), ),
        widget=autocomplete.Select2(attrs={'data-width': '100%'}),
        required=False,
    )
    country = forms.ModelChoiceField(
        label=_('country'),
        queryset=Country.objects.order_by('name').distinct(),
        empty_label=_('country'),
        widget=autocomplete.ModelSelect2(attrs={'data-width': '100%'}),
        required=False,
    )
    continent = forms.ModelChoiceField(
        label=_('continent'),
        queryset=Continent.objects.order_by('name').distinct(),
        empty_label=_('continent'),
        required=False,
    )
    partner_tags = forms.ModelMultipleChoiceField(
        label=_('partner_tags'),
        queryset=PartnerTag.objects.of_partners_having_partnerships(),
        widget=autocomplete.ModelSelect2Multiple(attrs={'data-width': '100%'}),
        required=False,
    )

    # Partnerships

    education_field = forms.ModelChoiceField(
        label=_('education_field'),
        queryset=DomainIsced.objects.filter(
            partnershipyear__isnull=False).distinct(),
        widget=autocomplete.ModelSelect2(attrs={'data-width': '100%'}),
        required=False,
    )
    is_sms = forms.NullBooleanField(
        label=_('is_sms'),
        widget=CustomNullBooleanSelect(),
        required=False,
    )
    is_smp = forms.NullBooleanField(
        label=_('is_smp'),
        widget=CustomNullBooleanSelect(),
        required=False,
    )
    is_sta = forms.NullBooleanField(
        label=_('is_sta'),
        widget=CustomNullBooleanSelect(),
        required=False,
    )
    is_stt = forms.NullBooleanField(
        label=_('is_stt'),
        widget=CustomNullBooleanSelect(),
        required=False,
    )
    is_smst = forms.NullBooleanField(
        label=_('is_smst'),
        widget=CustomNullBooleanSelect(),
        required=False,
    )
    partnership_type = forms.ChoiceField(
        label=_('partnership_type'),
        choices=((None, '---------'), ) + PartnershipType.choices(),
        required=False,
    )
    subtype = forms.ModelChoiceField(
        label=_('partnership_subtype'),
        queryset=PartnershipSubtype.objects.filter(
            years__isnull=False).distinct(),
        widget=autocomplete.ModelSelect2(
            url='partnerships:autocomplete:subtype',
            forward=['partnership_type'],
        ),
        required=False,
    )
    funding_type = forms.ModelChoiceField(
        label=_('funding_type'),
        queryset=FundingType.objects.filter(years__isnull=False).distinct(),
        widget=autocomplete.ModelSelect2(
            url='partnerships:autocomplete:funding_type',
            forward=['funding_program'],
        ),
        required=False,
    )
    funding_program = forms.ModelChoiceField(
        label=_('funding_program'),
        queryset=FundingProgram.objects.filter(
            fundingtype__years__isnull=False, ).distinct(),
        widget=autocomplete.ModelSelect2(
            url='partnerships:autocomplete:funding_program',
            forward=['funding_source'],
        ),
        required=False,
    )
    funding_source = forms.ModelChoiceField(
        label=_('funding_source'),
        queryset=FundingSource.objects.filter(
            fundingprogram__fundingtype__years__isnull=False, ).distinct(),
        required=False,
    )
    supervisor = forms.ModelChoiceField(
        label=_('partnership_supervisor'),
        queryset=Person.objects.filter(
            Q(partnerships_supervisor__isnull=False)
            | Q(management_entities__isnull=False)).order_by(
                'last_name').distinct(),
        widget=autocomplete.ModelSelect2(attrs={'data-width': '100%'}),
        required=False,
    )
    tags = forms.ModelMultipleChoiceField(
        label=_('tags'),
        queryset=PartnershipTag.objects.all(),
        widget=autocomplete.ModelSelect2Multiple(attrs={'data-width': '100%'}),
        required=False,
    )

    partnership_in = forms.ModelChoiceField(
        label=_('partnership_in'),
        help_text=_('parnership_in_help_text'),
        queryset=AcademicYear.objects.all(),
        required=False,
    )
    partnership_ending_in = forms.ModelChoiceField(
        label=_('partnership_ending_in'),
        help_text=_('parnership_ending_in_help_text'),
        queryset=AcademicYear.objects.all(),
        required=False,
    )
    partnership_valid_in = forms.ModelChoiceField(
        label=_('partnership_valid_in'),
        queryset=AcademicYear.objects.all(),
        required=False,
    )
    partnership_not_valid_in = forms.ModelChoiceField(
        label=_('partnership_not_valid_in'),
        queryset=AcademicYear.objects.all(),
        required=False,
    )
    partnership_with_no_agreements_in = forms.ModelChoiceField(
        label=_('partnership_with_no_agreements_in'),
        help_text=_('partnership_with_no_agreements_in_help_text'),
        queryset=AcademicYear.objects.all(),
        required=False,
    )
    partnership_date_type = forms.ChoiceField(
        label=_('Partnerships'),
        choices=((None, '---------'), ) + DateFilterType.choices(),
        required=False,
    )
    partnership_date_from = forms.DateField(
        label=_('during (all or part of) the period from'),
        required=False,
        widget=DatePickerInput(
            format=DATE_FORMAT,
            attrs={
                'class': 'datepicker',
                'autocomplete': 'off'
            },
        ),
        input_formats=[DATE_FORMAT],
        initial=now,
    )
    partnership_date_to = forms.DateField(
        label=_('to'),
        required=False,
        widget=DatePickerInput(
            format=DATE_FORMAT,
            attrs={
                'class': 'datepicker',
                'autocomplete': 'off'
            },
        ),
        input_formats=[DATE_FORMAT],
        initial=now,
    )
    comment = forms.CharField(
        label=_('comment'),
        required=False,
    )
    ordering = forms.CharField(widget=forms.HiddenInput, required=False)
    is_public = forms.NullBooleanField(
        label=_('partnership_is_public'),
        widget=CustomNullBooleanSelect(),
        required=False,
    )

    def __init__(self, *args, **kwargs):
        user = kwargs.pop('user')
        super().__init__(*args, **kwargs)

        # Cities
        cities = (
            EntityVersionAddress.objects.filter(
                # We need to go around the relation for sub-entities
                entity_version__entity__organization__entity__partner_of__isnull
                =False,
                city__isnull=False,
            ).values_list('city', flat=True).order_by('city').distinct('city'))
        self.fields['city'].choices = ((None, _('city')), ) + tuple(
            (city, city) for city in cities)

        allowed = [
            scope for scope in PartnershipType
            if partnership_type_allowed_for_user_scope(user, scope)
        ]

        # If we have only one scope, pre-filter with this scope
        if len(allowed) == 1:
            self.fields['partnership_type'].initial = allowed[0].name
        elif len(allowed) > 1 and PartnershipType.MOBILITY in allowed:
            self.fields[
                'partnership_type'].initial = PartnershipType.MOBILITY.name

        # Everyone has access to every type, except faculty managers
        if len(allowed) == 1 and not is_linked_to_adri_entity(user):
            # They have only access to mobility (their only type)
            self.fields['partnership_type'].disabled = True
            self.fields['partnership_type'].widget = forms.HiddenInput()

        # Init ucl_entity for faculty manager
        if is_faculty_manager(user):
            university = PartnershipEntityManager.get_person_related_entities(
                user.person)[0]
            self.fields['ucl_entity'].initial = university
            self.fields['ucl_entity_with_child'].initial = True

    def clean_ordering(self):
        # Django filters expects a list
        ordering = self.cleaned_data.get('ordering')
        if ordering:
            return [ordering]

    def clean(self):
        data = super().clean()
        special = data.get('partnership_date_type')
        date_from = data.get('partnership_date_from')
        date_to = data.get('partnership_date_to')
        if special and not date_from:
            self.add_error('partnership_date_from', _("required"))
        if date_from and date_to and date_from > date_to:
            self.add_error(
                'partnership_date_to',
                _("End date must be after start date"),
            )
        return data
Exemple #4
0
class UserProfileForm(forms.Form):
    firstname = forms.CharField(
        min_length=2,
        widget=forms.TextInput(attrs={'placeholder': _('Firstname'), 'class': 'form-control'})
    )

    lastname = forms.CharField(
        min_length=2,
        widget=forms.TextInput(attrs={'placeholder': _('Lastname'), 'class': 'form-control'})
    )

    address_1 = forms.CharField(
        min_length=2,
        widget=forms.TextInput(attrs={'placeholder': _('address 1'), 'class': 'form-control'})
    )

    address_2 = forms.CharField(
        required=False,
        widget=forms.TextInput( attrs={'placeholder': _('address 2'), 'class': 'form-control'})
    )

    address_city = forms.ModelChoiceField(
        label=_('Address city:'),
        queryset=Loc.objects.all(),
        widget=autocomplete.ModelSelect2(url='autocomplete_locs', attrs={'class': 'form-control'})
    )

    phonenumber =  forms.RegexField('^(\+4|)?(07[0-8]{1}[0-9]{1}|02[0-9]{2}|03[0-9]{2}){1}?(\s|\.|\-)?([0-9]{3}(\s|\.|\-|)){2}$',
        widget=forms.TextInput(attrs={'placeholder': _('phone number'), 'class': 'form-control'})
    )

    subscription_sms_alerts = forms.BooleanField(required=False, label='subscribe to sms alerts')
    subscription_newsletter = forms.BooleanField(required=False, label='subscribe to newsletter')
    subscription_surveys = forms.BooleanField(required=False, label='subscribe to surveys')

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()

        self.helper.layout = Layout(Row(
                Column('firstname', css_class='col-md-6'),
                Column('lastname', css_class='col-md-6'),
                css_class='form-group'
            ),
            Row(
                Column('address_1', css_class='col-md-6'),
                Column('address_2', css_class='col-md-6'),
                css_class='form-group'
            ),
            Row(
                Column('address_city', css_class='col-md-6'),
                Column('phonenumber', css_class='col-md-6'),
                css_class='form-group'
            ),
            Row(
                Column('subscription_sms_alerts', css_class='col-md-12'),

                css_class='form-group'
            ),
            Row(
                Column('subscription_newsletter', css_class='col-md-12'),

                css_class='form-group'
            ),
            Row(

                Column('subscription_surveys', css_class='col-md-12'),
                css_class='form-group'
            ),
            Submit('submit', _('Save')))
Exemple #5
0
 class Meta:
     model = APIv2App
     fields = ('__all__')
     widgets = {
         'owner': autocomplete.ModelSelect2(url='api-v2-autocomplete')
     }
Exemple #6
0
class DetalleDeReceta2Form(forms.ModelForm):
    class Meta:
        model = DetalleDeReceta2
        fields = ('__all__')
        widgets = {
            #"subreceta":autocomplete.ModelSelect2(url='receta-autocomplete'),
            "cantidad":
            forms.TextInput(
                attrs={
                    'style': 'text-align:right',
                    'size': '12',
                    'class': 'auto',
                    'data-a-sep': '.',
                    'data-a-dec': ','
                }),
        }

    # para eliminar los popup edit y add
    subreceta = forms.ModelChoiceField(
        queryset=Receta.objects.all(),
        widget=autocomplete.ModelSelect2(url='receta-autocomplete'),
        required=True,
        label="RECETA")

    unidad_de_medida = forms.CharField(
        widget=forms.TextInput(attrs={'size': '9'}),
        required=False,
        label="UNIDAD DE MEDIDA")

    precio_unitario = forms.CharField(widget=forms.TextInput(
        attrs={
            'style': 'text-align:right',
            'size': '12',
            'class': 'auto',
            'data-a-sep': '.',
            'data-a-dec': ','
        }),
                                      required=False,
                                      label="PRECIO UNITARIO")

    subtotal = forms.CharField(widget=forms.TextInput(
        attrs={
            'style': 'text-align:right',
            'size': '12',
            'class': 'auto',
            'data-a-sep': '.',
            'data-a-dec': ','
        }),
                               required=False,
                               label="SUBTOTAL")

    def __init__(self, *args, **kwargs):
        super(DetalleDeReceta2Form, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.pk:
            self.initial[
                'unidad_de_medida'] = instance.subreceta.unidad_de_medida.abreviatura
            self.initial['precio_unitario'] = instance.get_precio_unitario()
            self.initial['subtotal'] = instance.get_subtotal()
        self.fields['unidad_de_medida'].widget.attrs['readonly'] = True
        self.fields['precio_unitario'].widget.attrs['readonly'] = True
        self.fields['subtotal'].widget.attrs['readonly'] = True
Exemple #7
0
 class Meta:
     model = Author
     fields = ('__all__')
     widgets = {
         'curator': autocomplete.ModelSelect2(url='user-autocomplete')
     }
Exemple #8
0
 class Meta:
     model = ProjectParticipant
     widgets = {
         'person': autocomplete.ModelSelect2(url='person-autocomplete'),
     }
     exclude = ('project', )
Exemple #9
0
class InstitutionForm(M2MFieldFormMixin, UserKwargModelFormMixin, FormHorizontalMixin,
                      forms.ModelForm):
    # TODO: Split region,voivodeship,county into forms.MultiWidget
    voivodeship = forms.ModelChoiceField(
        label=_("Voivodeship"),
        required=True,
        queryset=JST.objects.voivodeship().all(),
        widget=autocomplete.ModelSelect2(url='teryt:voivodeship-autocomplete')
    )
    county = forms.ModelChoiceField(
        label=_("County"),
        required=True,
        queryset=JST.objects.county().all(),
        widget=autocomplete.ModelSelect2(url='teryt:county-autocomplete',
                                         forward=['voivodeship'],
                                         )
    )
    monitorings = forms.ModelMultipleChoiceField(queryset=Monitoring.objects.all(),
                                                 label=_("Monitorings"),
                                                 required=False,
                                                 widget=autocomplete.ModelSelect2Multiple(url='monitorings:autocomplete'))

    def __init__(self, *args, **kwargs):
        if kwargs.get('instance', None):
            instance = kwargs.get('instance')
            kwargs['initial'] = kwargs.get('initial', {})
            if instance.region.parent:
                kwargs['initial']['county'] = instance.region.parent.pk
                if instance.region.parent.parent:
                    kwargs['initial']['voivodeship'] = instance.region.parent.parent.pk

        super(InstitutionForm, self).__init__(*args, **kwargs)
        self.instance.user = self.user

        button_label = _('Update') if self.instance.pk else _("Save")
        self.helper.form_class = 'form-horizontal'
        self.helper.layout = Layout(
            Fieldset(
                _('Identification'),
                'name',
                'regon',
                'krs',
            ),
            Fieldset(
                _('Location'),
                'voivodeship',
                'county',
                'region',
            ),
            Fieldset(
                _('Monitorings'),
                'monitorings',
            ),
            ButtonHolder(
                Submit('submit', button_label, css_class='button white')
            )
        )
        if self.instance.pk:
            self.fields['monitorings'].initial = self.instance.monitorings.all()

    def save(self, *args, **kwargs):
        super(InstitutionForm, self).save(*args, **kwargs)
        self.save_m2m_field('monitorings', 'institution', 'monitoring')
        return self.instance

    class Meta:
        model = Institution
        fields = ['name', 'regon', 'krs', 'region']
        widgets = {
            'region': autocomplete.ModelSelect2(url='teryt:community-autocomplete',
                                                forward=['county']),
        }
Exemple #10
0
 class Meta:
     fields = ('__all__')
     widgets = {
         'room_type': autocomplete.ModelSelect2(url='roomtype-autocomplete'),
     }
Exemple #11
0
 class Meta:
     fields = ('__all__')
     widgets = {
         'a_location_from': autocomplete.ModelSelect2(url='location-autocomplete'),
         'a_location_to': autocomplete.ModelSelect2(url='location-autocomplete'),
     }
Exemple #12
0
class SchoolCodesCreateForm(forms.Form):
    school = forms.ModelChoiceField(
        label=_('School'),
        queryset=School.objects.all(),
        widget=autocomplete.ModelSelect2(url='school_autocomplete'))
Exemple #13
0
class PostAdminForm(forms.ModelForm):
    desc=forms.CharField(widget=forms.Textarea,label='摘要',required=True)

    category=forms.ModelChoiceField(
        queryset=Category.objects.all(),
        widget=autocomplete.ModelSelect2(url='category_autocomplete'),
        label='分类',
    )
    tag=forms.ModelMultipleChoiceField(
        queryset=Tag.objects.all(),
        widget=autocomplete.ModelSelect2Multiple(url='tag_autocomplete'),
        label='标签',
    )

    """
    # content添加富文本编辑器,不能添加图片
    content=forms.CharField(
        widget=CKEditorWidget(),
        label='正文',
        required=True,
    )
    """

    # content添加富文本编辑器,可以添加图片
    # 修改content使Markdown和CKeditor共存,所以注释掉
    # content=forms.CharField(
    #     widget=CKEditorUploadingWidget(),
    #     label='正文',
    #     required=True,
    # )

    # 以下全部是配置Markdown和CKeditor共存的内容,建议直接使用一种方法CKeditor,即上方配置

    content_ck=forms.CharField(
        widget=CKEditorUploadingWidget(),
        label='正文',
        required=False,
    )
    content_md=forms.CharField(
        widget=forms.Textarea(),
        label='正文',
        required=False,
    )
    content=forms.CharField(
        widget=forms.HiddenInput(),
        required=False,
    )

    class Meta:
        model=Post
        fields=(
            'category','tag','title','desc','status',
            'is_md','content','content_ck','content_md'
        )

    # 使Markdown和CKeditor共存
    def __init__(self,instance=None,initial=None,**kwargs):
        initial=initial or {}
        if instance:
            if instance.is_md:
                initial['content_md']=instance.content
            else:
                initial['content_ck']=instance.content
        super(PostAdminForm, self).__init__(instance=instance,initial=initial,**kwargs)

    def clean(self):
        is_md=self.cleaned_data['is_md']
        if is_md:
            content_field_name='content_md'
        else:
            content_field_name='content_ck'

        content=self.cleaned_data[content_field_name]
        if not content:
            self.add_error(content_field_name,'必填项!')
            return
        self.cleaned_data['content']=content
        return super(PostAdminForm, self).clean()

    class Media:
        js=('js/post_editor.js',)
Exemple #14
0
class AdviceFilter(CrispyFilterMixin, django_filters.FilterSet):
    subject = django_filters.CharFilter(label=_("Subject"),
                                        lookup_expr="icontains")
    advicer = UserChoiceFilter(label=_("Advicer"))
    created_by = UserChoiceFilter(label=_("Created by"))
    created_on = django_filters.DateRangeFilter(label=_("Created on"))
    community = AreaFilter(
        label=_("Community"),
        widget=autocomplete.ModelSelect2(url="teryt:community-autocomplete"),
    )

    class Meta:
        model = Advice
        fields = [
            "advicer",
            "created_by",
            "created_on",
            "area",
            "issues",
            "person_kind",
            "institution_kind",
            "helped",
            "subject",
        ]
        order_by = (
            ("created_on", _("Creation date")),
            ("modified_on", _("Modification date")),
            ("id", _("ID")),
            ("advicer", _("Advicer")),
            ("person_kind", _("Person kind")),
            ("institution_kind", _("Institution kind")),
        )

    @property
    def form(self):
        self._form = super(CrispyFilterMixin, self).form
        self._form.helper = FormHelper(self._form)
        self._form.helper.form_method = "get"
        self._form.helper.form_class = "form-inline"
        self._form.helper.include_media = False
        self._form.helper.layout = Layout(
            Fieldset(
                _("Statistic data"),
                Div(
                    Div("area", css_class="col-sm-12 col-md-4"),
                    Div("issues", css_class="col-sm-12 col-md-4"),
                    Div("person_kind", css_class="col-sm-12 col-md-4"),
                    css_class="row",
                ),
                Div(
                    Div("institution_kind", css_class="col-sm-12 col-md-3"),
                    Div("helped", css_class="col-sm-12 col-md-3"),
                    Div("community", css_class="col-sm-12 col-md-3"),
                    css_class="row",
                ),
            ),
            Fieldset(_("Details"), "advicer", "created_by", "created_on",
                     "subject"),
        )
        self._form.helper.add_input(Submit("filter", _("Filter")))
        return self._form
Exemple #15
0
    def __init__(self, *args, **kwargs):
        if kwargs.get('instance'):
            kwargs['initial'] = {
                'occupation':
                ast.literal_eval(kwargs.get('instance').occupation or '[]'),
                'degree':
                ast.literal_eval(kwargs.get('instance').degree or '[]'),
                'participation':
                ast.literal_eval(kwargs.get('instance').participation or '[]'),
                'expenses':
                ast.literal_eval(kwargs.get('instance').expenses or '[]'),
                'opt_outs':
                ast.literal_eval(kwargs.get('instance').opt_outs or '[]'),
                'acknowledgements':
                ast.literal_eval(
                    kwargs.get('instance').acknowledgements or '[]'),
            }

        super().__init__(*args, **kwargs)

        self.fields['gender'] = OptionalChoiceField(
            label='Gender^',
            choices=GENDER_CHOICES,
        )

        self.fields['skills'] = OptionalMultiChoiceField(
            choices=SKILLS_CHOICES,
            label='Do you have any of the following skills?^',
            help_text='Check all that apply.',
        )

        self.fields['how_did_you_find_out'] = OptionalMultiChoiceField(
            choices=HOW_DID_YOU_FIND_OUT_CHOICES,
            label='How did you find out about OpenCon 2016?^',
            help_text='Check all that apply.',
        )

        self.fields['airport'] = forms.ModelChoiceField(
            queryset=Airport.objects.all(),
            widget=autocomplete.ModelSelect2(
                url='application:airport-autocomplete'),
            label=
            'Closest international airport to the city you indicated in the previous question.',
            help_text=
            'This question helps us understand how for you would need to travel. Begin by '
            'typing the name of the city and suggestions will show up. Click the correct one. '
            'You can also search by the three-letter IATA code (for example “LHR” for London). '
            'If your airport does not show up, please type “Other Airport” and specify your '
            'airport in the comments box below. Please enter an airport regardless of how close '
            'you are located to Washington, DC, and note that U.S. regional/national airports '
            'are permitted.',
        )
        self.fields['institution'] = forms.ModelChoiceField(
            queryset=Institution.objects.all(),
            widget=autocomplete.ModelSelect2(
                url='application:institution-autocomplete'),
            label='Primary Institution / Employer / Affiliation',
            help_text=
            'Begin by typing the full name (no abbreviations) of the primary institution or '
            'organization where you work or go to school. A list of suggestions will show up '
            'as you type. If the correct name appears, click to select. If it does not appear, '
            'finish typing the full name and click the option to “Create” the name. You may need '
            'to scroll down to find this option.',
        )
        self.fields['organization'] = forms.ModelChoiceField(
            queryset=Organization.objects.all(),
            widget=autocomplete.ModelSelect2(
                url='application:organization-autocomplete'),
            label=
            'Other Primary Affiliation / Organization / Project (Optional)',
            help_text=
            'If you have another primary affiliation or project, you may list it here. Similar to the '
            'question above, begin by typing the full name. If the correct name shows up automatically, '
            'click to select. If not, then finish typing and click “Create.” If you have multiple other '
            'affiliations, list only the most important one here. You may list any additional '
            'affiliations in the Comments Box at the end of the application.',
            required=False,
        )
Exemple #16
0
class StuffForm(BSModalModelForm):
    category = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(
            url='inventory:category_autocomplete'),
        label="Catégorie d'appareil",
        required=False,
        queryset=Category.objects.all(),
    )
    device = forms.ModelChoiceField(widget=autocomplete.ModelSelect2(
        url='inventory:device_autocomplete', forward=['category']),
                                    label="Type d'appareil",
                                    queryset=Device.objects.all(),
                                    required=False)
    create_device = forms.BooleanField(
        label="Je ne trouve pas mon type d'appareil dans la liste ci dessus",
        required=False,
    )
    brand = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(url='inventory:brand_autocomplete'),
        label="Marque",
        required=False,
        queryset=Brand.objects.all())
    model = forms.CharField(
        label="Designation/modèle",
        help_text="Si vous n'êtes pas sûr, ne remplissez pas ce champ",
        required=False)
    picture = forms.ImageField(required=False, label="Photo")
    create_folder = forms.BooleanField(
        label="Je souhaite ajouter un dossier de réparation", required=False)
    repair_date = forms.DateField(
        initial=dt.today(),
        label="date",
        widget=forms.DateInput(attrs={"type": "date"}, format="%Y-%m-%d"),
        required=False,
    )
    ongoing = forms.BooleanField(
        label="Dossier en cours",
        required=False,
        initial=True,
    )
    observation = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(
            url='inventory:observation_autocomplete'),
        help_text="Quel est (ou était) le problème ?",
        required=False,
        queryset=Observation.objects.all())
    reasoning = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(
            url='inventory:reasoning_autocomplete'),
        help_text="Quel en est (ou serait) la cause ?",
        label="Raisonnement",
        required=False,
        queryset=Reasoning.objects.all())
    action = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(url='inventory:action_autocomplete'),
        help_text="Qu'avez-vous fait ?",
        required=False,
        queryset=Action.objects.all())
    status = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(url='inventory:status_autocomplete'),
        help_text="Quel est le résultat de l'action ?",
        required=False,
        queryset=Status.objects.all())

    def init_folder(self, data):
        self.folder = {}
        self.intervention = {}
        self.intervention['repair_date'] = data['repair_date']
        if getattr(self, "event", False):
            self.intervention['event'] = self.event
        self.intervention['observation'] = data['observation']
        if not getattr(self, "visitor_user", False):
            self.intervention['reasoning'] = data['reasoning']
            self.intervention['action'] = data['action']
            self.intervention['status'] = data['status']
            self.folder['open_date'] = data['repair_date']
            if data['ongoing']:
                self.folder['ongoing'] = True
            else:
                self.folder['ongoing'] = False
        else:
            self.folder['open_date'] = dt.today()
            self.folder['ongoing'] = True
        if not self.folder['open_date']:
            self.add_error(f'La date ne peut pas être vide')
        if not self.intervention['observation']:
            self.add_error(f'Veuillez rentrer au moins une observation.')
        self.create_folder = data['create_folder']

    def clean_device(self):
        if not self.request.is_ajax():
            device = self.cleaned_data['device']
            if not device:
                device = {}
                device["category"] = self.cleaned_data['category']
                device["brand"] = self.cleaned_data['brand']
                device["model"] = self.cleaned_data['model']
                if not device["category"]:
                    self.add_error("category",
                                   "Ce champ ne peut pas être vide")
                device = Device.objects.create(**device)
                self.cleaned_data['device'] = device
        return self.cleaned_data['device']

    def clean(self):
        if getattr(self, "user", False):
            self.cleaned_data["member_owner"] = self.user
        if getattr(self, "organization", False):
            self.cleaned_data["organization_owner"] = self.organization
        if self.cleaned_data["create_folder"]:
            self.init_folder(self.cleaned_data)

    def save(self, commit=True):
        instance = super(StuffForm, self).save(commit=commit)
        if self.cleaned_data["create_folder"]:
            self.folder['stuff'] = instance
            folder = RepairFolder.objects.create(**self.folder)
            self.intervention['folder'] = folder
            intervention = Intervention.objects.create(**self.intervention)

    def __init__(self,
                 organization=None,
                 user=None,
                 visitor_user=None,
                 event=None,
                 *args,
                 **kwargs):
        super().__init__(*args, **kwargs)
        if event:
            self.event = event
        if organization:
            self.organization = organization
            self.fields['place'] = forms.ModelChoiceField(
                widget=autocomplete.ModelSelect2(url='place_autocomplete'),
                label="Localisation",
                queryset=Place.objects.all(),
                help_text="Où se trouve l'objet ?",
                required=False)
            self.fields['is_visible'] = forms.BooleanField(
                label="Cet objet est-il visible du public ?",
                initial=False,
                help_text="par exemple s'il est en vente",
                required=False)
        if visitor_user:
            self.user = visitor_user
            self.visitor_user = visitor_user
            del self.fields['action']
            del self.fields['is_visible']
            del self.fields['reasoning']
            del self.fields['status']
            del self.fields['place']
        if user:
            self.user = user
            del self.fields['is_visible']
            del self.fields['place']

    class Meta:
        model = Stuff
        fields = (
            "category",
            "create_folder",
            "create_device",
            "brand",
            "model",
            "picture",
            "state",
            "organization_owner",
            "member_owner",
            "information",
            "ongoing",
            "observation",
            "action",
            "reasoning",
            "status",
            "place",
            "repair_date",
            "device",
            "is_visible",
        )
Exemple #17
0
 class Meta:
     model = PySaleOrderDetail
     fields = [
         'sale_order',
         'product',
         'description',
         'quantity',
         # 'measure_unit',
         # 'product_tax',
         'amount_untaxed',
         'discount',
         # 'amount_total',
     ]
     labels = {
         'product': 'Producto',
         'description': 'Descripción',
         'quantity': 'Cantidad',
         # 'measure_unit': 'Unidad',
         # 'product_tax': 'Impuesto',
         'amount_untaxed': 'Precio',
         'discount': 'Descuento',
         # 'amount_total': 'Sub total',
     }
     widgets = {
         'sale_order':
         HiddenInput(),
         'product':
         autocomplete.ModelSelect2(
             url='sale:product-autocomplete',
             forward=('sale_order', ),
             attrs={
                 'class': 'form-control',
                 'data-placeholder': 'Seleccione un producto ...',
                 'style': 'width: 100%',
             },
         ),
         'description':
         TextInput(attrs={
             'class': 'form-control',
             'placeholder': 'Descripción del producto ...',
             'style': 'width: 100%',
         }, ),
         'quantity':
         NumberInput(attrs={
             'class': 'form-control',
             'data-placeholder': 'Cantidad del producto ...',
             'style': 'width: 100%',
         }, ),
         # 'measure_unit': autocomplete.ModelSelect2(
         #     url='measure-unit-autocomplete',
         #     attrs={
         #         'class': 'form-control',
         #         'data-placeholder': 'Seleccione un unidad ...',
         #         'style': 'width: 100%',
         #     },
         # ),
         # 'product_tax': autocomplete.ModelSelect2(
         #     url='product-tax-autocomplete',
         #     attrs={
         #         'class': 'form-control',
         #         'data-placeholder': 'Seleccione un Impuesto ...',
         #         'style': 'width: 100%',
         #     },
         # ),
         'amount_untaxed':
         NumberInput(attrs={
             'class': 'form-control',
             'data-placeholder': 'Precio del producto ...',
             'style': 'width: 100%',
         }, ),
         'discount':
         NumberInput(attrs={
             'class': 'form-control',
             'data-placeholder': 'Descuento ...',
             'style': 'width: 100%',
         }, ),
         # 'amount_total': NumberInput(
         #     attrs={
         #         'class': 'form-control',
         #         'data-placeholder': 'Sub total ...',
         #         'style': 'width: 100%',
         #     },
         # ),
     }
Exemple #18
0
class StuffUpdateForm(BSModalModelForm):
    category = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(
            url='inventory:category_autocomplete'),
        label="Catégorie d'appareil",
        required=False,
        queryset=Category.objects.all(),
    )
    device = forms.ModelChoiceField(widget=autocomplete.ModelSelect2(
        url='inventory:device_autocomplete', forward=['category']),
                                    label="Type d'appareil",
                                    queryset=Device.objects.all(),
                                    required=False)
    create_device = forms.BooleanField(
        label="Je ne trouve pas mon type d'appareil dans la liste ci dessus",
        required=False,
    )
    brand = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(url='inventory:brand_autocomplete'),
        label="Marque",
        required=False,
        queryset=Brand.objects.all())
    model = forms.CharField(
        label="Designation/modèle",
        help_text="Si vous n'êtes pas sûr, ne remplissez pas ce champ",
        required=False)
    picture = forms.ImageField(required=False, label="Photo")

    def clean_device(self):
        if not self.request.is_ajax():
            device = self.cleaned_data['device']
            if not device:
                device = {}
                device["category"] = self.cleaned_data['category']
                device["brand"] = self.cleaned_data['brand']
                device["model"] = self.cleaned_data['model']
                if not device["category"]:
                    self.add_error("category",
                                   "Ce champ ne peut pas être vide")
                device = Device.objects.create(**device)
                self.cleaned_data['device'] = device
        return self.cleaned_data['device']

    def save(self, commit=True):
        instance = super().save(commit=commit)
        return instance

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    class Meta:
        model = Stuff
        fields = (
            "category",
            "create_device",
            "brand",
            "model",
            "picture",
            "information",
            "device",
        )
Exemple #19
0
class QuieroSerFiscalForm(forms.Form):

    MENSAJE_ERROR_CODIGO_REF = 'Codigo de referido debe ser de 4 letras y/o números.'
    MENSAJE_ERROR_TELEFONO_INVALIDO = 'Teléfono no es válido. Chequeá código de área y teléfono.'
    MENSAJE_ERROR_DNI_REPETIDO = 'Ya se encuentra un usuario registrado con ese DNI.'
    MENSAJE_ERROR_PASSWORD_NO_IGUALES = "Las contraseñas no coinciden."
    MENSAJE_ERROR_EMAIL_REPETIDO = 'Ya existe ese correo. Intentá recuperando la contraseña'

    CARACTERES_REF_CODIGO = 4
    CANTIDAD_DIGITOS_NUMERACION_ARGENTINA = 10

    MAX_DIGITOS_TELEFONO_LOCAL = 8
    MIN_DIGITOS_TELEFONO_LOCAL = 5
    MAX_DIGITOS_COD_AREA = 5
    MIN_DIGITOS_COD_AREA = 2

    email = forms.EmailField(required=True)
    email_confirmacion = forms.EmailField(required=True,
                                          label="Confirmar email")
    apellido = forms.CharField(required=True, label="Apellido", max_length=50)
    nombres = forms.CharField(required=True, label="Nombres", max_length=100)
    dni = ARDNIField(required=True,
                     label="DNI",
                     help_text='Ingresá tu Nº de documento sin puntos.')
    telefono_area = forms.CharField(
        label='Código de área (sin 0 adelante).',
        help_text=
        'Por ejemplo: 11 para CABA, 221 para La Plata, 351 para Córdoba, etc.',
        required=True,
        validators=[
            MaxLengthValidator(MAX_DIGITOS_COD_AREA),
            MinLengthValidator(MIN_DIGITOS_COD_AREA),
        ])
    telefono_local = forms.CharField(
        label='Teléfono',
        help_text='Ingresá tu teléfono sin el 15, ni guiones ni espacios.',
        required=True,
        validators=[
            MaxLengthValidator(MAX_DIGITOS_TELEFONO_LOCAL),
            MinLengthValidator(MIN_DIGITOS_TELEFONO_LOCAL),
        ])

    distrito = forms.ModelChoiceField(
        required=True,
        label='Provincia',
        queryset=Distrito.objects.all().order_by('numero'),
        widget=autocomplete.ModelSelect2(url='autocomplete-distrito-simple', ),
    )

    seccion = forms.ModelChoiceField(
        queryset=Seccion.objects.all(),
        required=False,
        widget=autocomplete.ModelSelect2(url='autocomplete-seccion-simple',
                                         forward=['distrito']),
    )

    referente_nombres = forms.CharField(
        required=False,
        label="Nombre del referente",
        max_length=100,
        help_text="Si no tenés, dejalo en blanco.")
    referente_apellido = forms.CharField(
        required=False,
        label="Apellido del referente",
        max_length=50,
        help_text="Si no tenés, dejalo en blanco.")

    referido_por_codigo = forms.CharField(
        required=False,
        label="Código de referencia",
        help_text="Si no sabes qué es, dejalo en blanco.")

    password = forms.CharField(
        label='Elegí una contraseña',
        help_text='No uses la de tu email o redes sociales',
        widget=forms.PasswordInput,
        strip=False,
    )
    password_confirmacion = forms.CharField(
        label='Repetir la contraseña',
        strip=False,
        widget=forms.PasswordInput,
    )

    layout = Layout(
        Fieldset('Datos personales', Row('nombres', 'apellido', 'dni'),
                 Row('email', 'email_confirmacion'),
                 Row('password', 'password_confirmacion'),
                 Row('distrito', 'seccion')),
        Fieldset('Teléfono celular', Row('telefono_area', 'telefono_local')),
        Fieldset(
            'Referencia',
            Row('referente_nombres', 'referente_apellido',
                'referido_por_codigo')))

    def clean(self):
        cleaned_data = super().clean()
        self.validar_correo(cleaned_data)
        self.validar_telefono(cleaned_data.get('telefono_area'),
                              cleaned_data.get('telefono_local'))

    def clean_telefono_area(self):
        telefono_area = self.cleaned_data.get('telefono_area')
        if telefono_area:
            # por las dudas, sacamos los 0 a la izquierda del código de área
            telefono_area = telefono_area.lstrip('0')
        return telefono_area

    def validar_correo(self, cleaned_data):
        email = cleaned_data.get('email')
        email2 = cleaned_data.get('email_confirmacion')
        if email and email2 and email != email2:
            self.add_error('email', 'Los emails no coinciden')
            self.add_error('email_confirmacion', 'Los emails no coinciden')

        if User.objects.filter(email=email).exists():
            self.add_error('email', self.MENSAJE_ERROR_EMAIL_REPETIDO)

    def validar_telefono(self, telefono_area, telefono_local):
        if telefono_area and telefono_local:
            cantidad_digitos_telefono = len(telefono_area) + len(
                telefono_local)
            if cantidad_digitos_telefono != self.CANTIDAD_DIGITOS_NUMERACION_ARGENTINA:
                error = (
                    "Revisá el código de área y teléfono."
                    f"Entre ambos deben ser {self.CANTIDAD_DIGITOS_NUMERACION_ARGENTINA} números"
                )
                self.add_error('telefono_area', error)
                self.add_error('telefono_local', error)
            telefono = telefono_area + telefono_local
            valor = phonenumbers.parse(telefono, 'AR')
            if not phonenumbers.is_valid_number(valor):
                self.add_error('telefono_local',
                               self.MENSAJE_ERROR_TELEFONO_INVALIDO)
                self.add_error('telefono_area',
                               self.MENSAJE_ERROR_TELEFONO_INVALIDO)

    def clean_referente_apellido(self):
        return self.cleaned_data.get('referente_apellido', '').strip() or None

    def clean_referente_nombres(self):
        return self.cleaned_data.get('referente_nombres', '').strip() or None

    def clean_password(self):
        password = self.cleaned_data.get('password')
        if password:
            password_validation.validate_password(password)
        return password

    def clean_password_confirmacion(self):
        password = self.cleaned_data.get('password')
        password_confirmacion = self.cleaned_data.get('password_confirmacion')
        if password and password_confirmacion:
            if password != password_confirmacion:
                raise forms.ValidationError(
                    self.MENSAJE_ERROR_PASSWORD_NO_IGUALES)
        return password_confirmacion

    def clean_dni(self):
        dni = self.cleaned_data.get('dni')
        if Fiscal.objects.filter(dni=dni).exists():
            raise ValidationError(self.MENSAJE_ERROR_DNI_REPETIDO)
        return dni

    def clean_referido_por_codigo(self):
        referido_por_codigo = self.cleaned_data.get('referido_por_codigo',
                                                    None)
        if referido_por_codigo:
            if len(referido_por_codigo) != self.CARACTERES_REF_CODIGO:
                raise ValidationError(self.MENSAJE_ERROR_CODIGO_REF)
            referido_por_codigo = referido_por_codigo.upper()
        return referido_por_codigo
Exemple #20
0
class FolderForm(BSModalModelForm):
    BROKEN = "B"
    WORKING = "W"
    DISASSEMBLED = "D"
    FIXING = "F"
    FIXED = "O"
    THROWN = "T"
    PARTIAL = "P"
    STATES = [
        (BROKEN, "En panne"),
        (WORKING, "Fonctionnel"),
        (DISASSEMBLED, "Désassemblé"),
        (FIXING, "En réparation"),
        (FIXED, "Réparé"),
        (THROWN, "Evaporé"),
        (PARTIAL, "Partiel"),
    ]
    stuff_state = forms.ChoiceField(choices=STATES, label="Etat")
    change_stuff_state = forms.BooleanField(
        label="Ce dossier change l'état général de l'objet",
        required=False,
        initial=False,
    )
    ongoing = forms.BooleanField(
        label="Dossier en cours",
        required=False,
        initial=True,
    )
    observation = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(
            url='inventory:observation_autocomplete'),
        help_text="Quel est (ou était) le problème ?",
        required=False,
        queryset=Observation.objects.all())
    reasoning = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(
            url='inventory:reasoning_autocomplete'),
        help_text="Quel en est (ou serait) la cause ?",
        label="Raisonnement",
        required=False,
        queryset=Reasoning.objects.all())
    action = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(url='inventory:action_autocomplete'),
        help_text="Qu'avez-vous fait ?",
        required=False,
        queryset=Action.objects.all())
    status = forms.ModelChoiceField(
        widget=autocomplete.ModelSelect2(url='inventory:status_autocomplete'),
        help_text="Quel est le résultat de l'action ?",
        required=False,
        queryset=Status.objects.all())

    def init_folder(self, data):
        self.folder = {}
        self.intervention = {}
        self.folder['open_date'] = data['open_date']
        if data['ongoing']:
            self.folder['ongoing'] = True
        else:
            self.folder['ongoing'] = False
        self.intervention['repair_date'] = data['open_date']
        if data['observation']:
            self.intervention['observation'] = data['observation']
        if data['reasoning']:
            self.intervention['reasoning'] = data['reasoning']
        if data['action']:
            self.intervention['action'] = data['action']
        if data['status']:
            self.intervention['status'] = data['status']
        if not self.folder['open_date']:
            self.add_error(f'La date ne peut pas être vide')
        if not self.intervention['observation']:
            self.add_error(f'Veuillez rentrer au moins une observation.')

    def clean(self):
        self.init_folder(self.cleaned_data)

    def save(self, commit=True):
        instance = super().save(commit=commit)
        self.folder['stuff'] = self.stuff
        folder = RepairFolder.objects.create(**self.folder)
        self.intervention['folder'] = folder
        intervention = Intervention.objects.create(**self.intervention)
        if self.cleaned_data["change_stuff_state"]:
            state = self.cleaned_data["stuff_state"]
            if state:
                self.stuff.__dict__.update(state=state)
                self.stuff.save()
            else:
                self.add_error(
                    f"Si vous souhaitez modifier l'état de l'objet, renseignez un état"
                )
        return instance

    def __init__(self, stuff=None, *args, **kwargs):
        super().__init__(*args, **kwargs)
        if stuff:
            self.stuff = stuff
        self.fields['open_date'] = forms.DateField(
            initial=dt.today(),
            widget=forms.DateInput(attrs={"type": "date"}, format="%Y-%m-%d"),
            label="date",
            required=False,
        )
        self.fields['ongoing'] = forms.BooleanField(
            label="Dossier en cours",
            initial=True,
            required=False,
        )

    class Meta:
        model = RepairFolder
        fields = [
            "open_date", "ongoing", "observation", "reasoning", "action",
            "status", "stuff_state", "change_stuff_state"
        ]
Exemple #21
0
 class Meta:
     model = Ingredient
     fields = ('__all__')
     widgets = {
         'ingeredient': autocomplete.ModelSelect2(url='ing_temp_comp')
     }
Exemple #22
0
 class Meta:
     model = Device
     fields = '__all__'
     widgets = {
         'model': autocomplete.ModelSelect2(url='device_model_autocomplete')
     }
Exemple #23
0
    class Meta:
        model = Carrera

        fields = [
            'localidad_edit',
            'nombre_edit',
            'descripcion_edit',
            'titulo_edit',
            'tipo_carrera_edit',
            'ieu_acreditadora_edit',
            'mercado_ocupacional_edit',
            'area_conocimiento_edit',
            'sub_area_conocimiento_edit',
            'cine_f_campo_amplio_edit',
            'cine_f_campo_especifico_edit',
            'cine_f_campo_detallado_edit',
            'duracion_edit',
            'modalidad_edit',
            'prioritaria_edit',
            'cod_activacion',
            'publicar'
        ]

        labels = {
            'localidad_edit': ('Localidad'),
            'nombre_edit': ('Nombre'),
            'descripcion_edit': ('Descripción'),
            'titulo_edit': ('Título'),
            'tipo_carrera_edit':('Tipo de Carrera'),
            'ieu_acreditadora_edit': ('Institución Acreditadora'),
            'mercado_ocupacional_edit': ('Mercado Ocupacional'),
            'area_conocimiento_edit': ('Área de Conocimiento'),
            'sub_area_conocimiento_edit': ('Sub Área de Conocimiento'),
            'cine_f_campo_amplio_edit': ('Campo Amplio'),
            'cine_f_campo_especifico_edit': ('Campo Especifico'),
            'cine_f_campo_detallado_edit': ('Campo Detallado'),
            'duracion_edit': ('Duración'),
            'modalidad_edit': ('Modalidad'),
        }

        widgets = {
            'localidad_edit':autocomplete.ModelSelect2(
                url='oeuacademic:localidades',
                attrs={
                    'class':'form-control select2',
                    'data-placeholder':'Selecciona la Localidad'
                    },
                ),
            'nombre_edit':forms.TextInput(
                attrs={
                    'class':'form-control', 
                    'placeholder':'Escribe el nombre de la Carrera'
                    },
                ),
            'descripcion_edit':forms.Textarea(
                attrs={
                    'class':'form-control', 
                    'placeholder':'Haz una descripción de la Carrera', 
                    'rows':2},
                ),
            'titulo_edit':forms.NumberInput(
                attrs={
                    'class':'form-control',
                    'placeholder':'Título'},),
            'tipo_carrera_edit':forms.Select(
                attrs={
                    'class':'form-control',
                    'placeholder':'Seleccione Una Opción'},),
            'ieu_acreditadora_edit':autocomplete.ModelSelect2(
                url='oeuacademic:acreditadora',
                attrs={
                    'class':'form-control select2',
                    'data-placeholder':'Institución Acreditadora'
                    },
                ),
            'mercado_ocupacional_edit':forms.Textarea(
                attrs={
                    'class':'form-control', 
                    'placeholder':'Escribe el mercado ocupacional de la carrera', 
                    'rows':2},
                ),
            'area_conocimiento_edit':autocomplete.ModelSelect2(
                url='oeuacademic:area-conocimiento',
                attrs={
                    'class':'form-control select2',
                    'data-placeholder':'Área de Conocimiento'
                    },
                ),
            'sub_area_conocimiento_edit':autocomplete.ModelSelect2(
                url='oeuacademic:sub-area-conocimiento',
                forward=['area_conocimiento_edit'],
                attrs={
                    'class':'form-control select2',
                    'data-placeholder':'Sub Área de Conocimiento'
                    },
                ),
            'cine_f_campo_amplio_edit':autocomplete.ModelSelect2(
                url='oeuacademic:cine-f-campo-amplio',
                attrs={
                    'class':'form-control select2',
                    'data-placeholder':'Seleccione Una Opción'
                    },
                ),
            'cine_f_campo_especifico_edit':autocomplete.ModelSelect2(
                url='oeuacademic:cine-f-campo-especifico',
                forward=['cine_f_campo_amplio_edit'],
                attrs={
                    'class':'form-control select2',
                    'data-placeholder':'Seleccione Una Opción'
                    },
                ),
            'cine_f_campo_detallado_edit':autocomplete.ModelSelect2(
                url='oeuacademic:cine-f-campo-detallado',
                forward=['cine_f_campo_especifico_edit'],
                attrs={
                    'class':'form-control select2',
                    'data-placeholder':'Seleccione Una Opción'
                    },
                ),
            'duracion_edit':forms.NumberInput(
                attrs={
                    'class':'form-control',
                    'placeholder':'Duración de la Carrera'},),
            'modalidad_edit':forms.Select(attrs={'class':'form-control'},),
            'prioritaria_edit':forms.RadioSelect(),
            
        }
Exemple #24
0
 class Meta:
     model = StartupMember
     fields = ['user', 'access_level', 'role']
     widgets = {'user': autocomplete.ModelSelect2(url='user-autocomplete')}
Exemple #25
0
class ArticleRelatedPageAdminForm(forms.ModelForm):

    page = forms.ModelChoiceField(
        queryset=Page.objects.drafts(),
        widget=autocomplete.ModelSelect2(url='articles:page-autocomplete'))
class AdvertisementCreationForm(forms.ModelForm):

    # error_message = forms.UserCreationForm.error_messages.update(
    #     {"duplicate_username": _("This username has already been taken.")}
    # )

    category = forms.ModelChoiceField(
        queryset=Category.objects.all(),
        widget=autocomplete.ModelSelect2(url='advertisements:categoryAutoComplete'))
    subcategory = forms.ModelChoiceField(
        queryset=Subcategory.objects.all(),
        widget=autocomplete.ModelSelect2(
            url='advertisements:subcategoryAutoComplete',
            forward=('category',)))
    agreement = forms.BooleanField(
        required=True, label="I have read and agree to the Terms and Conditions and Privacy Policy")

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Row(
                Column('description', css_class='col-md-6'),
                Column('product_page_link', css_class='col-md-6'),


                css_class='row'
            ),
            Row(
                Column('is_global', css_class='col-md-3 form-check-box'),
                Column('locations', css_class='col-md-9'),



                css_class='row'
            ),

            Row(
                Column('category', css_class='col-md-6'),
                Column('subcategory', css_class='col-md-6'),



                css_class='row'
            ),
            Row(
                Column('tags', css_class='col-md-12'),



                css_class='row'
            ),
            Row(
                Column('video', css_class='col-md-6'),
                Column('thumbnail', css_class='col-md-6'),



                css_class='row'
            ),
            Row(
                Column('validity', css_class='col-md-6'),
                Column('cost', css_class='col-md-6'),


                css_class='row'
            ),
            'agreement',
            Submit('submit', 'Submit', css_class='make_payment_button')

        )

    class Meta:
        model = Advertisement
        exclude = ('status', 'user')
        widgets = {
            'tags': autocomplete.TaggitSelect2(
                'advertisements:tagAutoComplete'
            ),
            'locations': autocomplete.ModelSelect2Multiple(
                url='advertisements:locationAutoComplete'
            )

        }
Exemple #27
0
 class Meta:
     widgets = {
         'group':
         autocomplete.ModelSelect2(url='groups:group-autocomplete'),
     }
 class MergeForm(forms.Form):
     merge_target = forms.ModelChoiceField(
         queryset=Task.objects.all(),
         widget=autocomplete.ModelSelect2(url=reverse(
             "todo:task_autocomplete", kwargs={"task_id": task_id})),
     )
Exemple #29
0
 class Meta:
     model = Cliente
     fields = ('__all__')
     widgets = { 
     	"vendedor": autocomplete.ModelSelect2(url='funcionario-autocomplete'), 
     }
Exemple #30
0
 class Meta:
     model = Fmodel
     exclude = ()
     widgets = {
         'code': autocomplete.ModelSelect2(url='product-autocomplete')
     }