Ejemplo n.º 1
0
 def __init__(self, href1=None, href2=None, is_new_button=False, is_get_button=True, label="", *argi, **argv):
     ModelSelect2Widget.__init__(self, *argi, label=label, **argv)
     self.href1 = href1
     self.href2 = href2
     self.is_new_button = is_new_button
     self.is_get_button = is_get_button
     self._label = label
Ejemplo n.º 2
0
    def __init__(self, *args, **kwargs):
        self.catalogues = kwargs.pop('catalogues', None)
        self.lots = kwargs.pop('lots', None)
        super().__init__(*args, **kwargs)

        fields = self.fields
        d = self.__dict__

        if self.catalogues:
            self.forms['item'].fields['catalogue'] = forms.ModelChoiceField(
                queryset=self.catalogues,
                widget=ModelSelect2Widget(
                    queryset=self.catalogues,
                    search_fields=['name__icontains'],
                ),
            )

        if self.lots:
            self.forms['item'].fields['lot'] = forms.ModelChoiceField(
                queryset=self.lots,
                widget=ModelSelect2Widget(
                    queryset=self.lots,
                    search_fields=['lot_as_listed_in_collection__icontains'],
                ),
            )
Ejemplo n.º 3
0
class AddressChainedSelect2WidgetForm(forms.Form):
    country = forms.ModelChoiceField(
        queryset=Country.objects.all(),
        label="Country",
        widget=ModelSelect2Widget(
            search_fields=["name__icontains"],
            max_results=500,
            dependent_fields={"city": "cities"},
            attrs={"data-minimum-input-length": 0},
        ),
    )

    city = forms.ModelChoiceField(
        queryset=City.objects.all(),
        label="City",
        widget=ModelSelect2Widget(
            search_fields=["name__icontains"],
            dependent_fields={"country": "country"},
            max_results=500,
            attrs={"data-minimum-input-length": 0},
        ),
    )

    city2 = forms.ModelChoiceField(
        queryset=City.objects.all(),
        label="City not Interdependent",
        widget=ModelSelect2Widget(
            search_fields=["name__icontains"],
            dependent_fields={"country": "country"},
            max_results=500,
            attrs={"data-minimum-input-length": 0},
        ),
    )
Ejemplo n.º 4
0
    def __init__(self, *args, **kwargs):
        self.catalogues = kwargs.pop('catalogues', None)
        self.lots = kwargs.pop('lots', None)
        super().__init__(*args, **kwargs)

        if self.catalogues:
            self.fields['catalogue'] = forms.ModelChoiceField(
                queryset=self.catalogues,
                widget=ModelSelect2Widget(
                    queryset=self.catalogues,
                    search_fields=['name__icontains'],
                ),
            )

        if self.lots:
            self.fields['lot'] = forms.ModelChoiceField(
                queryset=self.lots,
                widget=ModelSelect2Widget(
                    queryset=self.lots,
                    search_fields=['lot_as_listed_in_collection__icontains'],
                ),
            )

        super().__init__(**kwargs)
        self.content_type = ContentType.objects.get_for_model(self.instance)
        self.add_tag_field()
        self.add_languages_field()
        self.add_publishers_field()
        self.add_material_details_field()
        self.add_itemtype_field()
Ejemplo n.º 5
0
        class Meta:
            model = CourseStudy
            fields = [
                'study_year',
            ] + (['course'] if has_course_field else ['study'])

            if has_course_field:
                widgets = {
                    'course':
                    AddAnotherWidgetWrapper(
                        ModelSelect2Widget(model=Course,
                                           search_fields=[
                                               'name__icontains',
                                               'course_code__icontains'
                                           ]), reverse_lazy('boecie:index')),
                    'study':
                    HiddenInput(),
                }
            else:
                widgets = {
                    'study':
                    AddAnotherWidgetWrapper(
                        ModelSelect2Widget(model=Study,
                                           search_fields=[
                                               'name__icontains',
                                               'slug__icontains'
                                           ]), reverse_lazy('boecie:index')),
                    'course':
                    HiddenInput(),
                }
Ejemplo n.º 6
0
class EstoqueForm(forms.ModelForm):
    quantidade = forms.IntegerField(label='Quantidade de Vacinas', widget=forms.NumberInput(attrs={'class': "form-control", 'min': 0}))
    campanha = forms.ModelChoiceField(label='Campanha', queryset=Campanha.objects, required=False,
                                        widget=ModelSelect2Widget(model=Campanha, search_fields=['nome__icontains'],
                                        attrs={'class': "form-control", "data-minimum-input-length": "0", 
                                                "data-placeholder": "Busque e selecione uma campanha"}))
    estabelecimento = forms.ModelChoiceField(label='Estabelecimento', queryset=Estabelecimento.objects, required=False,
                                        widget=ModelSelect2Widget(model=Estabelecimento, search_fields=['nome__icontains'],
                                        attrs={'class': "form-control", "data-minimum-input-length": "0", 
                                                "data-placeholder": "Busque e selecione um estabelecimento"}))
    lote = forms.CharField(label='Lote de Vacinas', max_length=20, widget=forms.TextInput(attrs={'placeholder': 'código de Identificação do Lote', 'class': "form-control"}))
    
    class Meta:
        model = Estoque
        exclude = ()    

    def __init__(self, *args, **kwargs):
        self.estabelecimento = kwargs.pop('estabelecimento', None)
        self.campanha = kwargs.pop('campanha', None)
        super(EstoqueForm, self).__init__(*args,**kwargs)
        
        if self.estabelecimento:
            self.fields['estabelecimento'].initial = self.estabelecimento
            self.fields['estabelecimento'].disabled = True
        
        if self.campanha:
            self.fields['campanha'].initial = self.campanha
            self.fields['campanha'].disabled = True

    def clean(self):
        quantidade = self.cleaned_data.get('quantidade')
        if int(quantidade) < 0:
            self.add_error('quantidade', 'A quantidade não pode ser menor que zero')
Ejemplo n.º 7
0
class AddressChainedSelect2WidgetForm(forms.Form):
    country = forms.ModelChoiceField(
        queryset=Country.objects.all(),
        label='Country',
        widget=ModelSelect2Widget(
            search_fields=['name__icontains'],
            max_results=500,
            dependent_fields={'city': 'cities'},
            attrs={'data-minimum-input-length': 0},
        ))

    city = forms.ModelChoiceField(queryset=City.objects.all(),
                                  label='City',
                                  widget=ModelSelect2Widget(
                                      search_fields=['name__icontains'],
                                      dependent_fields={'country': 'country'},
                                      max_results=500,
                                      attrs={'data-minimum-input-length': 0},
                                  ))

    city2 = forms.ModelChoiceField(queryset=City.objects.all(),
                                   label='City not Interdependent',
                                   widget=ModelSelect2Widget(
                                       search_fields=['name__icontains'],
                                       dependent_fields={'country': 'country'},
                                       max_results=500,
                                       attrs={'data-minimum-input-length': 0},
                                   ))
Ejemplo n.º 8
0
    class Meta:
        """Form configuration"""

        model = models.Game
        fields = (
            "name",
            "year",
            "developer",
            "publisher",
            "website",
            "platforms",
            "genres",
            "description",
            "title_logo",
            "reason",
        )

        widgets = {
            "platforms":
            Select2MultipleWidget,
            "genres":
            Select2MultipleWidget,
            "developer":
            ModelSelect2Widget(model=models.Company,
                               search_fields=["name__icontains"]),
            "publisher":
            ModelSelect2Widget(model=models.Company,
                               search_fields=["name__icontains"]),
        }
Ejemplo n.º 9
0
class ExperimentSearchForm(forms.Form):
    text = forms.CharField(required=False)

    cas = forms.CharField(label='CAS', required=False)
    exp_type = forms.ModelChoiceField(widget=ModelSelect2Widget(
        queryset=ExperimentType.objects.all(),
        search_fields=['exp_type__icontains'],
        attrs={'data-tags': 'false'}),
                                      queryset=ExperimentType.objects.all(),
                                      required=False)
    target = forms.ModelChoiceField(widget=ModelSelect2Widget(
        queryset=ProteinTarget.objects.all(),
        search_fields=['target__icontains'],
        attrs={'data-tags': 'false'}),
                                    queryset=ProteinTarget.objects.all(),
                                    required=False)

    smiles = forms.CharField(label='smiles', required=False)

    cutoff = forms.DecimalField(
        widget=forms.NumberInput(attrs={'value': "0.4"}),
        min_value=0.00,
        max_value=1.00,
        decimal_places=2,
        required=False,
        initial=0.40)
    stype = forms.ChoiceField(widget=Select2Widget,
                              choices=(('sim', 'Similarity'),
                                       ('sub', 'Substructure')),
                              required=False)
Ejemplo n.º 10
0
    def __init__(self, *args, **kwargs):
        super(CuuHoLocationForm, self).__init__(*args, **kwargs)

        self.fields['volunteer'] = ModelChoiceField(
            queryset=TinhNguyenVien.objects.order_by("-status"),
            widget=ModelSelect2Widget(
                model=TinhNguyenVien,
                search_fields=['name__unaccent__icontains'],
                attrs={
                    'style': 'min-width:250px',
                    'data-minimum-input-length': 0
                }),
            required=False)

        self.fields["tinh"] = ModelChoiceField(
            queryset=Tinh.objects.order_by("name"),
            widget=ModelSelect2Widget(
                model=Tinh,
                search_fields=['name__unaccent__icontains'],
                attrs={
                    'style': 'min-width:250px',
                    'data-minimum-input-length': 0
                }),
            required=False)

        self.fields["huyen"] = ModelChoiceField(
            queryset=Huyen.objects.order_by("name"),
            widget=ModelSelect2Widget(
                model=Huyen,
                search_fields=['name__unaccent__icontains'],
                dependent_fields={'tinh': 'tinh'},
                attrs={
                    'style': 'min-width:250px',
                    'data-minimum-input-length': 0
                }),
            required=False)

        self.fields["xa"] = ModelChoiceField(
            queryset=Xa.objects.order_by("name"),
            widget=ModelSelect2Widget(
                model=Xa,
                search_fields=['name__unaccent__icontains'],
                dependent_fields={'huyen': 'huyen'},
                attrs={
                    'style': 'min-width:250px',
                    'data-minimum-input-length': 0
                }),
            required=False)

        self.fields["tinh"].label = "Tỉnh"
        self.fields["tinh"].help_text = "Nhấn vào để chọn tỉnh"

        self.fields["huyen"].label = "Huyện"
        self.fields["huyen"].help_text = "Bạn phải chọn tỉnh trước"

        self.fields["xa"].label = "Xã"
        self.fields["xa"].help_text = "Bạn phải chọn tỉnh, và huyện trước"
Ejemplo n.º 11
0
 class Meta(BaseForm.Meta):
     model = SubFuncFlow
     widgets = {
         'func_flow': ModelSelect2Widget(queryset=FuncFlow.objects.filter(
             status__in=('On going', 'Released')).all(), search_fields=['name__icontains', ]),
         'requester': ModelSelect2Widget(queryset=Application.objects.filter(
             status__in=('On going', 'Released')).all(), search_fields=['name__icontains', ]),
         'receiver': ModelSelect2Widget(queryset=Application.objects.filter(
             status__in=('On going', 'Released')).all(), search_fields=['name__icontains', ]),
     }
Ejemplo n.º 12
0
 class Meta:
     model = WorkAuthor
     fields = "__all__"
     widgets = {
         'author':
         ModelSelect2Widget(model=Person,
                            search_fields=['short_name__icontains']),
         'work':
         ModelSelect2Widget(model=Work, search_fields=['title__icontains']),
     }
Ejemplo n.º 13
0
 class Meta:
     model = CollectionPlaceRelation
     fields = "__all__"
     widgets = {
         'place':
         ModelSelect2Widget(model=Place, search_fields=['name__icontains']),
         'type':
         ModelSelect2Widget(model=CollectionPlaceRelationType,
                            search_fields=['name__icontains'])
     }
Ejemplo n.º 14
0
class AgendamentoForm(forms.ModelForm):
    data = forms.DateField(label=u'Data de Início', input_formats=['%d/%m/%Y'], widget=forms.DateInput(format='%d/%m/%Y',
                                    attrs={'placeholder': 'dia/mês/ano', 'class': 'form-control', 
                                            'data-toggle': "input-mask", 'data-mask-format': "00/00/0000"}))
    quantidade = forms.IntegerField(label='Quantidade de Vacinas', widget=forms.NumberInput(attrs={'class': "form-control", 'min': 0}))
    campanha = forms.ModelChoiceField(label='Campanha', queryset=Campanha.objects, required=False,
                                        widget=ModelSelect2Widget(model=Campanha, search_fields=['nome__icontains'],
                                        attrs={'class': "form-control", "data-minimum-input-length": "0", 
                                                "data-placeholder": "Busque e selecione uma empresa"}))
    estabelecimento = forms.ModelChoiceField(label='Estabelecimento', queryset=Estabelecimento.objects, required=False,
                                        widget=ModelSelect2Widget(model=Estabelecimento, search_fields=['nome__icontains'],
                                        attrs={'class': "form-control", "data-minimum-input-length": "0", 
                                                "data-placeholder": "Busque e selecione uma empresa"}))

    class Meta:
        model = Agendamento
        exclude = ('status', 'paciente', 'data_aplicacao', 'estoque')    

    def __init__(self, *args, **kwargs):
        self.estabelecimento = kwargs.pop('estabelecimento', None)
        self.campanha = kwargs.pop('campanha', None)
        super(AgendamentoForm, self).__init__(*args,**kwargs)
        
        if self.estabelecimento:
            self.fields['estabelecimento'].initial = self.estabelecimento
            self.fields['estabelecimento'].disabled = True
        
        if self.campanha:
            self.fields['campanha'].initial = self.campanha
            self.fields['campanha'].disabled = True

    def clean(self):
        quantidade = self.cleaned_data.get('quantidade')
        data = self.cleaned_data.get('data')
        campanha = self.cleaned_data.get('campanha')
        if int(quantidade) < 0:
            self.add_error('quantidade', 'A quantidade não pode ser menor que zero')

        if int(quantidade) > campanha.estoque_disponivel():
            estoque_disponivel = Estoque.objects.filter(estabelecimento=self.estabelecimento, campanha=self.campanha).aggregate(qtd=Sum('quantidade'))['qtd']
            self.add_error('quantidade', 'O número de agendamentos supera as vacinas disponíveis para este estabelecimento: {}'.format(estoque_disponivel or 0))

        if data < datetime.date(2020, 12, 10):
            self.add_error('data', 'A data não pode ser inferior a 12/2020')
    
    def save(self):
        agendamentos = []
        quantidade_agendamentos = self.cleaned_data.get('quantidade')
        for x in range(quantidade_agendamentos):
            agendamentos.append(
                Agendamento(status=Agendamento.DISPONIVEL, data=self.cleaned_data.get('data'), 
                            campanha=self.cleaned_data.get('campanha'), 
                            estabelecimento=self.cleaned_data.get('estabelecimento'))
            )        
        Agendamento.objects.bulk_create(agendamentos)
Ejemplo n.º 15
0
class SalaForm(forms.ModelForm):
    campus = forms.ModelChoiceField(required=True,
                                    queryset=Campus.objects.all(),
                                    label="",
                                    widget=ModelSelect2Widget(
                                        model=Campus,
                                        search_fields=['nome__icontains'],
                                        attrs={
                                            'style':
                                            "width:100%",
                                            'data-minimum-input-length':
                                            "0",
                                            'data-placeholder':
                                            "Selecione o campus..."
                                        }))
    edificio = forms.ModelChoiceField(
        required=True,
        queryset=Edificio.objects.all(),
        label="",
        widget=ModelSelect2Widget(model=Edificio,
                                  search_fields=['nome__icontains'],
                                  dependent_fields={'campus': 'campus'},
                                  attrs={
                                      'style': "width:100%",
                                      'data-minimum-input-length': "0",
                                      'data-placeholder':
                                      "Selecione o edificio..."
                                  }))
    identificacao = forms.CharField(
        label="",
        widget=forms.TextInput(attrs={
            'class': "input",
            'type': "text",
            'placeholder': "Sala"
        }),
        error_messages={
            'unique':
            'Uma sala com o mesmo nome já existe! Por favor coloque outra sala.'
        })
    mapa = forms.CharField(required=False,
                           label="",
                           widget=forms.TextInput(attrs={
                               'class': "input",
                               'type': "text"
                           }))

    class Meta:
        model = Sala
        fields = ('campus', 'edificio', 'identificacao', 'mapa', 'mapa_imagem')
        error_messages = {
            NON_FIELD_ERRORS: {
                'unique_together':
                "A Sala com este Nome, Edifício e Campus já existe!",
            }
        }
Ejemplo n.º 16
0
    class Meta(BaseForm.Meta):
        model = BatchFlow
        widgets = {
            'subfunc_flow': ModelSelect2Widget(queryset=SubFuncFlow.objects.filter(
                status__in=('On going', 'Released')).all(), search_fields=['name__icontains', ]),

            'input_flow': ModelSelect2Widget(queryset=AsynchronousFlow.objects.filter(
                status__in=('On going', 'Released')).all(), search_fields=['name__icontains', ]),
            'output_flow': ModelSelect2Widget(queryset=AsynchronousFlow.objects.filter(
                status__in=('On going', 'Released')).all(), search_fields=['name__icontains', ])
        }
Ejemplo n.º 17
0
 class Meta:
     model = PersonItemRelation
     fields = ['item', 'person', 'role', 'notes']
     widgets = {
         'person':
         ModelSelect2Widget(model=Person,
                            search_fields=['short_name__icontains']),
         'role':
         ModelSelect2Widget(model=PersonItemRelationRole,
                            search_fields=['name__icontains'])
     }
Ejemplo n.º 18
0
 def __init__(self, href1=None, href2=None, label="", *argi, **argv):
     if href1:
         if "attrs" in argv:
             argv["attrs"]["href1"] = href1
         else:
             argv["attrs"] = {"href1": href1}
     if href2:
         if "attrs" in argv:
             argv["attrs"]["href2"] = href2
         else:
             argv["attrs"] = {"href2": href2}
     ModelSelect2Widget.__init__(self, *argi, label=label, **argv)
Ejemplo n.º 19
0
 class Meta:
     model = Publisher
     fields = "__all__"
     widgets = {
         'publisher':
         ModelSelect2Widget(model=Person,
                            search_fields=['short_name__icontains']),
         'edition':
         ModelSelect2Widget(
             model=Edition,
             search_fields=['year__icontains', 'place__name__icontains'])
     }
Ejemplo n.º 20
0
class WorkForm(forms.ModelForm):
    '''
        Crispy form for publication create/update(edit).
        Added field with buttons for inline add. Is almost the same as PublicationForm but has a submit button.

    '''

    date_precision = forms.ModelChoiceField(widget=ModelSelect2Widget(
        model=Date_precision,
        search_fields=['date_precision__icontains', ],
        attrs={'data-minimum-input-length': 0},
    ), queryset=Date_precision.objects.all())
    genre = forms.ModelChoiceField(widget=ModelSelect2Widget(
        model=Genre,
        search_fields=['date_precision__icontains', ],
        attrs={'data-minimum-input-length': 0},
    ), queryset=Genre.objects.all())

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.fields['text'].required = False
        self.fields['year'].required = False
        self.fields['title'].required = False
        self.fields['publisher'].required = False
        self.fields['location'].required = False
        self.fields['detail_descriptions'].required = False
        self.fields['date_precision'].required = False
        self.fields['genre'].required = False

        self.helper.layout = Layout(
                    'text',
                    'year',
                    'title',
                    'publisher',
                    'location',
                    'detail_descriptions',
                    'date_precision',
                    HTML("""{% include "_date_precision_modal.html" %}"""),
                    'genre',
                    HTML("""{% include "_genre_modal.html" %}"""),
            ButtonHolder(
                Submit('save_add_another', 'Save and add another', css_class='btn-save btn-danger'),
                Submit('save_and_continue_editing', 'Save and continue editing', css_class='btn-save btn-danger'),
                Submit('save', 'Save', css_class='btn-save btn-danger'),
            )
        )

    # do unsubscribe
    class Meta:
        model = Works
        # See note here: https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
        fields = ('text', 'year', 'title', 'publisher', 'location', 'detail_descriptions', 'date_precision', 'genre',)
Ejemplo n.º 21
0
 class Meta:
     model = StylizedPhoto
     fields = ('paint', 'based_photo')
     widgets = {
         'paint':
         ModelSelect2Widget(
             model=Paint,
             queryset=Paint.objects.filter(is_approved=True),
             search_fields=['name__contains'],
         ),
         'based_photo':
         ModelSelect2Widget(model=Photo, search_fields=['name__contains']),
     }
Ejemplo n.º 22
0
 class Meta:
     model = GroupProfile
     fields = ['name', 'nickname', 'parent', 'superadmin']
     widgets = {
         'parent':
         ModelSelect2Widget(search_fields=[
             'name__icontains',
         ]),
         'superadmin':
         ModelSelect2Widget(search_fields=[
             'username__icontains',
         ])
     }
Ejemplo n.º 23
0
 class Meta:
     model = AidRequest
     exclude = ["examination_dttm"]
     widgets = {
         'applicant': ModelSelect2Widget(model=User,
                                         search_fields=['userprofile__student_info__fio__icontains', 'first_name', 'last_name'],
                                         attrs={'data-width': '30em'}
                                         ),
         'author': ModelSelect2Widget(model=User,
                                      search_fields=['userprofile__student_info__fio__icontains', 'first_name', 'last_name'],
                                      attrs={'data-width': '30em'}
                                      )
     }
Ejemplo n.º 24
0
 class Meta:
     model = models.Album
     fields = (
         'artist',
         'primary_genre',
     )
     widgets = {
         'artist':
         ModelSelect2Widget(model=models.Artist,
                            search_fields=['title__icontains']),
         'primary_genre':
         ModelSelect2Widget(model=models.Genre,
                            search_fields=['title__icontains']),
     }
Ejemplo n.º 25
0
 class Meta:
     model = PersonCollectionRelation
     fields = "__all__"
     widgets = {
         'person':
         ModelSelect2Widget(model=Person,
                            search_fields=[
                                'short_name__icontains',
                                'surname__icontains',
                                'first_names__icontains'
                            ]),
         'role':
         ModelSelect2Widget(model=PersonCollectionRelationRole,
                            search_fields=['name__icontains'])
     }
Ejemplo n.º 26
0
class DiffInstallerForm(forms.Form):

    installer_1 = forms.ChoiceField(
        widget=ModelSelect2Widget(
            model=models.Installer,
            search_fields=['slug__contains']
        )
    )

    installer_2 = forms.ChoiceField(
        widget=ModelSelect2Widget(
            model=models.Installer,
            search_fields=['slug__contains']
        )
    )
Ejemplo n.º 27
0
class AgendarVacinacaoDataForm(forms.Form):
    data = forms.ChoiceField(label='Data de Vacinação', choices=[], widget=Select2Widget(attrs={'class': "form-control",
                                                                                      "data-placeholder": "Selecione a data disponível"}))

    campanha = forms.ModelChoiceField(label='Campanha', queryset=Campanha.objects, required=False,
                                        widget=ModelSelect2Widget(model=Campanha, search_fields=['nome__icontains'],
                                        attrs={'class': "form-control", "data-minimum-input-length": "0", 
                                                "data-placeholder": "Busque e selecione uma empresa"}))
    estabelecimento = forms.ModelChoiceField(label='Estabelecimento', queryset=Estabelecimento.objects, required=False,
                                        widget=ModelSelect2Widget(model=Estabelecimento, search_fields=['nome__icontains'],
                                        attrs={'class': "form-control", "data-minimum-input-length": "0", 
                                                "data-placeholder": "Busque e selecione uma empresa"}))

    def __init__(self, *args, **kwargs):
        self.estabelecimento = kwargs.pop('estabelecimento', None)
        self.campanha = kwargs.pop('campanha', None)
        self.paciente = kwargs.pop('paciente', None)
        super(AgendarVacinacaoDataForm, self).__init__(*args,**kwargs)
        
        if self.estabelecimento:
            self.fields['estabelecimento'].initial = self.estabelecimento
            self.fields['estabelecimento'].disabled = True
        
        if self.campanha:
            self.fields['campanha'].initial = self.campanha
            self.fields['campanha'].disabled = True

        agendamentos = Agendamento.objects.filter(campanha=self.campanha, 
                                                    status=Agendamento.DISPONIVEL, 
                                                    estabelecimento=self.estabelecimento).order_by('data')\
                                            .values_list('data', flat=True)
        if agendamentos:
            agendamentos = set(agendamentos)
            data_agendamento_choices = []
            for dia in agendamentos:
                data_agendamento_choices.append((dia, dia.strftime('%d/%m/%Y')))
            self.fields['data'].choices = set(data_agendamento_choices)

    @transaction.atomic
    def save(self):
        self.data = self.cleaned_data.get('data')
        agendamento = Agendamento.objects.filter(campanha=self.campanha, 
                                            status=Agendamento.DISPONIVEL, 
                                            estabelecimento=self.estabelecimento, 
                                            data=self.data).order_by('pk').first()
        agendamento.paciente = self.paciente
        agendamento.status = Agendamento.OCUPADO
        agendamento.save()
Ejemplo n.º 28
0
    def test_pagination(self, genres, client):
        url = reverse('django_select2-json')
        widget = ModelSelect2Widget(max_results=10,
                                    model=Genre,
                                    search_fields=['title__icontains'])
        widget.render('name', None)
        field_id = signing.dumps(id(widget))

        response = client.get(url, {'field_id': field_id, 'term': ''})
        assert response.status_code == 200
        data = json.loads(response.content.decode('utf-8'))
        assert data['more'] is True

        response = client.get(url, {
            'field_id': field_id,
            'term': '',
            'page': 1000
        })
        assert response.status_code == 404

        response = client.get(url, {
            'field_id': field_id,
            'term': '',
            'page': 'last'
        })
        assert response.status_code == 200
        data = json.loads(response.content.decode('utf-8'))
        assert data['more'] is False
Ejemplo n.º 29
0
        class Meta:
            model = Course
            fields = [
                'id',
                'course_code',
                'name',
                'materials',
                'teachers',
                'updated_associations',
                'updated_teacher',
                'calendar_year',
                'coordinator',
                'period',
                *(['study_year'] if course_id is None else []),
            ]

            widgets = {
                'id':
                HiddenInput(),
                "materials":
                AddAnotherWidgetWrapper(
                    ModelSelect2MultipleWidget(
                        queryset=MSP.objects.all(),
                        search_fields=[
                            "mspline__materials__name__icontains",
                            "mspline__materials__book__ISBN__icontains",
                            "mspline__materials__book__author__icontains",
                            "mspline__materials__book__year_of_publishing__icontains",
                            "mspline__materials__scientificarticle__DOI__icontains",
                            "mspline__materials__scientificarticle__author__icontains",
                            "mspline__materials__scientificarticle__year_of_publishing__icontains",
                        ]),
                    reverse_lazy('boecie:msp.create',
                                 kwargs={'course': course_id}))
                if course_id else MultipleHiddenInput(),
                'teachers':
                AddAnotherWidgetWrapper(
                    ModelSelect2MultipleWidget(model=Teacher,
                                               search_fields=[
                                                   'titles__icontains',
                                                   'initials__icontains',
                                                   'first_name__icontains',
                                                   'surname_prefix__icontains',
                                                   'last_name__icontains',
                                                   'email__icontains'
                                               ]),
                    reverse_lazy('boecie:teacher.create')),
                'coordinator':
                AddAnotherWidgetWrapper(
                    ModelSelect2Widget(model=Teacher,
                                       search_fields=[
                                           'titles__icontains',
                                           'initials__icontains',
                                           'first_name__icontains',
                                           'surname_prefix__icontains',
                                           'last_name__icontains',
                                           'email__icontains'
                                       ]),
                    reverse_lazy('boecie:teacher.create')),
            }
Ejemplo n.º 30
0
class GroupSlipAdminForm(forms.ModelForm):
  trainees = forms.ModelMultipleChoiceField(
      queryset=Trainee.objects.all(),
      label='Trainees',
      required=False,
      widget=TraineeSelect2MultipleInput,
  )

  service_assignment = forms.ModelChoiceField(
      label='Service Assignment',
      queryset=Assignment.objects.all(),
      required=False,
      widget=ModelSelect2Widget(
          model=Assignment,
          search_fields=['service__name__icontains'],
      ),
  )

  def __init__(self, *args, **kwargs):
    super(GroupSlipAdminForm, self).__init__(*args, **kwargs)
    self.fields['trainee'].widget.attrs['class'] = 'select-fk'
    self.fields['TA'].widget.attrs['class'] = 'select-fk'
    self.fields['TA_informed'].widget.attrs['class'] = 'select-fk'
    self.fields['finalized'].widget = DatetimePicker()
    self.fields['start'].widget = DatetimePicker()
    self.fields['end'].widget = DatetimePicker()

  class Meta:
    model = GroupSlip
    fields = "__all__"
Ejemplo n.º 31
0
 class Meta(BaseForm.Meta):
     model = SynchronousFlow
     widgets = {
         'subfunc_flow': ModelSelect2Widget(queryset=SubFuncFlow.objects.filter(
             status__in=('On going', 'Released')).all(), search_fields=['name__icontains', ]),
         'servers': ModelSelect2MultipleWidget(queryset=Server.objects.none(), search_fields=['name__icontains', ])
     }