Example #1
0
class PartialStationForm(ModelForm):
    beacon = CharField()
    lat = FloatField()
    lng = FloatField()
    main_img_num = IntegerField(required=False)

    def __init__(self, *args, **kwargs):
        super(PartialStationForm, self).__init__(*args, **kwargs)
        for i in range(1, settings.MAX_IMGS_UPLOAD + 1):
            field_name = 'img{0}'.format(i)
            self.fields[field_name] = ImageField(required=False)

    class Meta:
        model = Station
        exclude = ['location']
Example #2
0
def get_variation_selection_form(request, product):  # pragma: no cover
    # TODO: Does this belong here? Eliding from coverage meanwhile.
    variables = ProductVariationVariable.objects.filter(
        product=product).order_by("name").values_list("id", "name")
    values = defaultdict(list)
    for var_id, val_id, val in (ProductVariationVariableValue.objects.filter(
            variable__product=product).values_list("variable_id", "id",
                                                   "value")):
        values[var_id].append((val_id, val))
    form = Form(data=request.POST if request.POST else None)
    for variable_id, variable_name in variables:
        var_values = sorted(values.get(variable_id, ()))
        form.fields["var_%d" % variable_id] = IntegerField(
            label=variable_name, widget=Select(choices=var_values))
    return form
Example #3
0
class OfferForm(ModelForm):
    price = IntegerField(
        label='Precio',
        error_messages=default_error_messages,
    )

    end_date = DateField(
        label='Fecha de fin',
        error_messages=default_error_messages,
        widget=SelectDateWidget,
    )

    class Meta:
        model = Offer
        fields = ['price', 'end_date']
Example #4
0
class ReservationAbuseForm(Form):
    cancellation_horizon = IntegerField(initial=6, min_value=1)
    cancellation_penalty = IntegerField(initial=10)
    target = CharField(required=False)
    start = DateField(initial=timezone.now().replace(day=1).date())
    end = DateField(initial=timezone.now().date())

    def clean_cancellation_horizon(self):
        # Convert the cancellation horizon from hours to seconds.
        return self.cleaned_data['cancellation_horizon'] * 60 * 60

    def clean_start(self):
        start = self.cleaned_data['start']
        return timezone.make_aware(
            datetime(year=start.year,
                     month=start.month,
                     day=start.day,
                     hour=0,
                     minute=0,
                     second=0,
                     microsecond=0), timezone.get_current_timezone())

    def clean_end(self):
        end = self.cleaned_data['end']
        return timezone.make_aware(
            datetime(year=end.year,
                     month=end.month,
                     day=end.day,
                     hour=23,
                     minute=59,
                     second=59,
                     microsecond=999999), timezone.get_current_timezone())

    def get_target(self):
        target = self.cleaned_data['target'].split('|', 1)
        return ReservationItemType(target[0]), int(target[1])
Example #5
0
class ManualCleanupForm(Form):
    limit_days = IntegerField(min_value=1,
                              required=False,
                              label='Maximum age (days)',
                              help_text=' - remove objects older than X days')
    limit_size = IntegerField(
        min_value=1,
        required=False,
        label='Purge used space (Gb)',
        help_text=" - remove old objects until total size won't reach X GB")

    def cleanup(self):
        model = self.initial['type'].split('__')
        task_kwargs = self.get_task_kwargs()
        signature("tasks.deferred_manual_cleanup",
                  args=(model, ),
                  kwargs=task_kwargs).apply_async(queue='limitation')

    def get_task_kwargs(self):
        task_kwargs = dict(
            limit_size=self.cleaned_data['limit_size'],
            limit_days=self.cleaned_data['limit_days'],
        )
        return task_kwargs
Example #6
0
    def _collect_type_fields(self):
        containers = []
        for product in SubscriptionProductDao.get_all_visible().order_by('pk'):
            product_container = CategoryContainer(instance=product)
            for subscription_size in product.sizes.filter(visible=True).order_by('pk'):
                size_container = CategoryContainer(instance=subscription_size, name=subscription_size.long_name)
                for subscription_type in subscription_size.types.filter(visible=True).order_by('pk'):
                    field_name = f'amount[{subscription_type.id}]'
                    self.fields[field_name] = IntegerField(label=subscription_type.name, min_value=0,
                                                           initial=self._get_initial(subscription_type))

                    size_container.append(SubscriptionTypeField(field_name, instance=subscription_type))
                product_container.append(size_container)
            containers.append(product_container)
        return containers
Example #7
0
class NumberSelectField(BaseResponseForm):
    answer = IntegerField()

    def __init__(self, *args, **kwargs):
        super(NumberSelectField, self).__init__(*args, **kwargs)
        self.min_value = int(self.question.get_attribute('min_value', 0))
        self.max_value = int(self.question.get_attribute('max_value', 45))
        self.choices = tuple([
            (x, x) for x in range(self.min_value, self.max_value + 1)
        ])
        self.fields['answer'].widget = Select(choices=self.choices,
                                              attrs={
                                                  'min': self.min_value,
                                                  'max': self.max_value
                                              })
Example #8
0
class SQLHelperTextAnywhereForm(forms.Form):
    fkname = CharField(label="Field name containing patient research ID",
                       required=True)
    min_length = IntegerField(
        label="Minimum length of textual field (suggest e.g. 50)",
        min_value=1,
        required=True)
    fragment = CharField(label="String fragment to find", required=True)
    use_fulltext_index = BooleanField(
        label="Use full-text indexing where available "
        "(faster, but requires whole words)",
        required=False)
    include_content = BooleanField(
        label="Include content from fields where found (slower)",
        required=False)
Example #9
0
class AddCoMemberForm(CoMemberBaseForm):
    shares = IntegerField(label=Config.vocabulary('share_pl'), required=False, min_value=0, initial=0)

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        fields = list(self.base_layout)  # keep first 9 fields
        if Config.enable_shares():
            fields.append(Field('shares', css_class='col-md-2'))
        self.helper.layout = Layout(
            *fields,
            FormActions(
                self.get_submit_button(),
                LinkButton(_("Abbrechen"), reverse("sub-detail")),
            )
        )
Example #10
0
def get_thread_shared_users(request):
    """returns snippet of html with users"""
    thread_id = request.GET['thread_id']
    thread_id = IntegerField().clean(thread_id)
    thread = models.Thread.objects.get(id=thread_id)
    users = thread.get_users_shared_with()
    data = {
        'users': users,
    }
    html = render_into_skin_as_string('widgets/user_list.jinja', data, request)
    return JsonResponse({
        'html': html,
        'users_count': users.count(),
        'success': True
    })
Example #11
0
class ExtendedApprovalSettingsForm(SettingsForm):
    grace_period_diffset = IntegerField(
        label='Grace period (Diffset) in seconds',
        help_text='Time to "last diffset" review request being approved.')

    grace_period_shipit = IntegerField(
        label='Grace period (Ship It!) in seconds',
        help_text='Time to "Ship It" review request being approved.')

    enable_revoke_shipits = BooleanField(
        required=False,
        label='Revoke previous ShipIts',
        help_text='Revoke all ShipIts after a new diff was uploaded.')

    enable_target_shipits = BooleanField(
        required=False,
        label='Allow ShipIts of target groups/people only',
        help_text=('Do not accept ShipIts if the user is not in '
                   'review group/people.'))

    forbidden_user_shipits = CharField(
        required=False,
        label='User who can never ShipIt',
        help_text='Comma separated list of usernames.')
Example #12
0
class ThreadListGetForm(Form):
    """
    A form to validate query parameters in the thread list retrieval endpoint
    """
    course_id = CharField()
    page = IntegerField(required=False, min_value=1)
    page_size = IntegerField(required=False, min_value=1)

    def clean_course_id(self):
        """Validate course_id"""
        value = self.cleaned_data["course_id"]
        try:
            return CourseLocator.from_string(value)
        except InvalidKeyError:
            raise ValidationError(
                "'{}' is not a valid course id".format(value))

    def clean_page(self):
        """Return given valid page or default of 1"""
        return self.cleaned_data.get("page") or 1

    def clean_page_size(self):
        """Return given valid page_size (capped at 100) or default of 10"""
        return min(self.cleaned_data.get("page_size") or 10, 100)
Example #13
0
class YumYuckForm(RecordForm):
    recorded = RecordedField(label='Event date')
    crop = ModelChoiceField(
        label='Crop name',
        queryset=Crop.objects.filter(needs_moderation=False),
        widget=AddNewCropWidget(),
    )
    yum_before = IntegerField(label='Yums')
    yuck_before = IntegerField(label='Yucks')
    yum_after = IntegerField(label='Yums')
    yuck_after = IntegerField(label='Yucks')

    class Meta:
        model = YumYuck
        fields = (
            'recorded',
            'crop',
            'yum_before',
            'yuck_before',
            'yum_after',
            'yuck_after',
            'added_by',
            'garden',
        )
Example #14
0
class AppInfo(models.Model):
    id = IntegerField(label='ID')
    version_name = models.CharField(max_length=50)
    version_code = models.IntegerField()
    version_type = models.IntegerField(default=0)
    update_info = models.TextField()
    app_file = models.FileField(upload_to='apk/%Y-%m-%d %H:%M:%S/')
    datetime = models.DateTimeField(auto_now=True, blank=True, null=True)

    def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
        super(AppInfo, self).save(force_insert, force_update, using, update_fields)
        upload_file(self.app_file.file.name, 'APKs/' + os.path.basename(self.app_file.name))

    def __str__(self):
        return self.version_name + '(' + str(self.version_code) + ')'
Example #15
0
class CreateBridgeForm(Form):
    context = CharField(
        max_length=20,
        required=False,
        label='Kontekst',
        widget=TextInput(attrs={
            'value': 'polaczenia',
            'readonly': 'true',
            'class': 'form-control'
        }))
    exten = CharField(max_length=20,
                      required=True,
                      label='ID mostku',
                      widget=TextInput(attrs={'class': 'form-control'}))
    priority = IntegerField(
        required=False,
        label='Prioritet',
        widget=NumberInput(attrs={
            'value': 1,
            'readonly': 'true',
            'class': 'form-control'
        }))
    app = CharField(
        max_length=20,
        required=True,
        label='Aplikacja',
        widget=TextInput(attrs={
            'value': 'ConfBridge',
            'readonly': 'true',
            'class': 'form-control'
        }))
    appdata = CharField(max_length=20,
                        required=False,
                        label='Nazwa mostku (czytelna)',
                        widget=TextInput(attrs={'class': 'form-control'}))

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

    def save_bridge(self, form_data):
        bridge = BridgeModel()
        for key in form_data:
            if hasattr(bridge, key):
                setattr(bridge, key, form_data.get(key))
        bridge.save()
        print('Bridge with id {bridge_id} created'.format(
            bridge_id=form_data.get('appdata')))
        return bridge
Example #16
0
class MapUpdateFilterForm(Form):
    type = ChoiceField(choices=(('', _('any type')), ) + MapUpdate.TYPES,
                       required=False)
    geometries_changed = ChoiceField(choices=(('', _('any')),
                                              ('1', _('geometries changed')),
                                              ('0',
                                               _('no geometries changed'))),
                                     required=False)
    processed = ChoiceField(choices=(('', _('any')), ('1', _('processed')),
                                     ('0', _('not processed'))),
                            required=False)
    user_id = IntegerField(min_value=1, required=False)

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['user_id'].widget.attrs['placeholder'] = _('user id')
Example #17
0
class CuratorSearchForm(Form):
    fullSearch = CharField(max_length=255, required=False)
    useMUIS = BooleanField(initial=False, required=False)
    useDIGAR = BooleanField(initial=False, required=False)
    useMKA = BooleanField(initial=False, required=False)
    useETERA = BooleanField(initial=False, required=False)
    useFlickr = BooleanField(initial=False, required=False)
    useUTLIB = BooleanField(initial=False, required=False)
    useFinna = BooleanField(initial=False, required=False)
    useCommons = BooleanField(initial=False, required=False)
    useEuropeana = BooleanField(initial=False, required=False)
    useFotis = BooleanField(initial=False, required=False)
    # Also used for Finna and Fotis
    flickrPage = IntegerField(initial=1, required=False)
    filterExisting = BooleanField(initial=True, required=False)
    ids = NotValidatedMultipleChoiceField(coerce=str, required=False)
Example #18
0
class ProductForm(forms.Form):
    product_type = ModelChoiceField(queryset=ProductType.objects.select_related().all().order_by('name'),
                                    widget=Select(), label='Product Type')
    product_name = CharField(label='Product Name', required=True)
    price = DecimalField(label='Price', min_value=0)
    description = CharField(label='Description')
    storage = IntegerField(label='Storage', min_value=0)
    product_code = CharField(label='Product Code')

    def save(self):
        data = self.cleaned_data
        product = AllProduct(product_type=ProductType.object.get(name=data['product_type']['name']), 
            prodect_name=data['product_name'], price=data['price'], 
            description=data['description'], storage=data['storage'],
            product_code=data['product_code'])
        product.save()
Example #19
0
 def test_integerfield_5(self):
     f = IntegerField(min_value=10, max_value=20)
     self.assertWidgetRendersTo(f, '<input id="id_f" max="20" type="number" name="f" min="10" required>')
     with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
         f.clean(None)
     with self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 10.'"):
         f.clean(1)
     self.assertEqual(10, f.clean(10))
     self.assertEqual(11, f.clean(11))
     self.assertEqual(10, f.clean('10'))
     self.assertEqual(11, f.clean('11'))
     self.assertEqual(20, f.clean(20))
     with self.assertRaisesMessage(ValidationError, "'Ensure this value is less than or equal to 20.'"):
         f.clean(21)
     self.assertEqual(f.max_value, 20)
     self.assertEqual(f.min_value, 10)
Example #20
0
class AdminEditExchangeInfo(ModelForm):
    title = CharField(required=True)
    description = CharField(required=True)
    spending_max = IntegerField(required=True)
    exchange = CharField(widget=HiddenInput(), required=False)
    schedule_day = DateField(required=True)

    class Meta:
        model = GiftExchange
        fields = [
            'title',
            'description',
            'spending_max',
            'schedule_day',
            'exchange'
        ]
Example #21
0
 def post(self, request):
     parent_id = IntegerField().clean(request.POST['parent_id'])
     parent = Message.objects.get(id=parent_id)
     message = Message.objects.create_response(sender=request.user,
                                               text=request.POST['text'],
                                               parent=parent)
     last_visit = LastVisitTime.objects.get(message=message.root,
                                            user=request.user)
     last_visit.at = datetime.datetime.now()
     last_visit.save()
     return self.render_to_response(
         {
             'post': message,
             'user': request.user
         },
         template_name='group_messaging/stored_message.html')
Example #22
0
class RehearsalSelectionForm(Form):
    show = CharField(widget=TextInput(attrs={'readonly': 'readonly'}))
    show_private = IntegerField(widget=HiddenInput)

    def __init__(self, *args, **kwargs):
        super(RehearsalSelectionForm, self).__init__(*args, **kwargs)
        if 'rehearsal' in kwargs['initial']:
            self.fields['rehearsal'] = ChoiceField(
                choices=kwargs['initial']['rehearsal_choices'],
                initial=kwargs['initial']['rehearsal'])
        else:
            self.fields['rehearsal'] = ChoiceField(
                choices=kwargs['initial']['rehearsal_choices'])

    class Meta:
        fields = ['show_private', 'show', 'rehearsal']
Example #23
0
class AddChildForm(Form):

    nickname = CharField()
    shifts_per_month = IntegerField()
    parent_email_1 = EmailField(required=False)
    parent_email_2 = EmailField(required=False)

    def cleaned_emails(self):
        return [
            self.cleaned_data[email_field]
            for email_field in ['parent_email_1', 'parent_email_2']
            if self.cleaned_data[email_field]
        ]

    def clean_email(self):
        check_unique(self, 'nickname', Child)
Example #24
0
    def clean(self, value):
        if not value and not self.required:
            return None

        try:
            gid = from_global_id(value)
        except (TypeError, ValueError, UnicodeDecodeError, binascii.Error):
            raise ValidationError(self.error_messages['invalid'])

        try:
            IntegerField().clean(gid.id)
            CharField().clean(gid.type)
        except ValidationError:
            raise ValidationError(self.error_messages['invalid'])

        return value
Example #25
0
class EditCoMemberForm(CoMemberBaseForm):
    edit = IntegerField(widget=HiddenInput)

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

        # do not edit existing co-members
        if self.instance.pk:
            for field in self.fields.values():
                field.disabled = True

        self.helper.layout = Layout(
            *self.base_layout,  # keep first 9 fields
            'edit',
            FormActions(Submit('submit', _('Ändern'), css_class='btn-success'),
                        LinkButton(_('Abbrechen'), '?')))
Example #26
0
class AddressForm(Form):
    country = CharField(max_length=20, required=False)
    city = CharField(max_length=20, required=False)
    street = CharField(max_length=20, required=False)
    house_no = IntegerField(required=False, min_value=1)

    def clean(self):
        country = self.cleaned_data['country']
        city = self.cleaned_data['city']
        street = self.cleaned_data['street']
        house_no = self.cleaned_data['house_no']
        fields = [country, city, street, house_no]
        if any(fields) and any(field is None for field in fields):
            self.add_error(
                'country',
                'Please make sure all the address fields are filled.')
Example #27
0
class AlgorithmImageUpdateForm(SaveFormInitMixin, ModelForm):
    requires_memory_gb = IntegerField(
        min_value=1,
        max_value=30,
        help_text=
        "The maximum system memory required by the algorithm in gigabytes.",
    )

    class Meta:
        model = AlgorithmImage
        fields = ("requires_gpu", "requires_memory_gb")
        labels = {"requires_gpu": "GPU Supported"}
        help_texts = {
            "requires_gpu":
            "If true, inference jobs for this container will be assigned a GPU"
        }
Example #28
0
class ScriptThanksExceptForm(ModelForm):
    script_id = IntegerField()

    class Meta:
        model = InterestedPerson
        fields = ['email', 'contactme', 'script_id']
        widgets = {
            'script_id': HiddenInput(),
        }

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

        self.fields['email'].label = "E-mail:"
        self.fields[
            'contactme'].label = "Check this box if you agree to be invited to participate in other research related to technologies applied to promote healthy ageing."

        self.helper = FormHelper()
        self.helper.form_id = 'id-scriptthanksexceptform'
        self.helper.form_class = 'blueForms'
        self.helper.form_method = 'post'
        self.helper.form_action = 'finish'

        self.helper.layout = Layout(
            Field('script_id', type="hidden"),
            Row(Column('email', css_class='form-group col-md-8 mb-3 disabled'),
                css_class='form-row'),
            Row(Column('contactme', css_class='form-group col-md-12 mb-3'),
                css_class='form-row'),
            Row(Submit('submit', 'Complete', css_class='mb-4 mt-3 btn-lg'),
                css_class='form-row thanks-submit'),
        )

    def set_language(self, replica):
        if replica.language == Replica.LANG_POR:
            self.fields[
                'contactme'].label = "Marque a caixa ao lado caso aceite ser convidado para participar de outras pesquisas relacionadas à aplicação de tecnologia na promoção do envelhecimento saudável."
            self.helper.layout = Layout(
                Field('script_id', type="hidden"),
                Row(Column('email',
                           css_class='form-group col-md-8 mb-3 disabled'),
                    css_class='form-row'),
                Row(Column('contactme', css_class='form-group col-md-12 mb-3'),
                    css_class='form-row'),
                Row(Submit('submit', 'Concluir', css_class='mb-4 mt-3 btn-lg'),
                    css_class='form-row thanks-submit'),
            )
Example #29
0
class RestaurantForm(ModelForm):
    opening_time = TimeField(widget=TimeInput(attrs={'type': 'time'}))
    closing_time = TimeField(widget=TimeInput(attrs={'type': 'time'}))
    name = CharField()
    address = CharField()
    phone = CharField()
    capacity = IntegerField()
    image = URLField()
    description = Textarea()
    category = ModelChoiceField(queryset=Category.objects.all())

    class Meta:
        model = Restaurant
        fields = [
            'name', 'description', 'address', 'phone', 'capacity',
            'opening_time', 'closing_time', 'image', 'category'
        ]
Example #30
0
def remove(_request, link_id):
    """ Remove a specific link with ID ``link_id`` """

    field = IntegerField(min_value=1)
    try:
        value = field.clean(link_id)
    except ValidationError as err:
        json_data = {'rc': 1, 'response': '\n'.join(err.messages)}
        return http.JsonResponse(json_data, status=HTTPStatus.BAD_REQUEST)

    # this will silently ignore non-existing objects
    LinkReference.objects.filter(pk=value).delete()

    return http.JsonResponse({
        'rc': 0,
        'response': 'Link has been removed successfully.'
    })