Пример #1
0
class SaleListForm(forms.Form):
    # user_id = forms.IntegerField(required=False)
    start_created = forms.DateField(required=False)
    end_created = forms.DateField(required=False)
    # payment_mode = forms.IntegerField(required=False, min_value=1, max_value=3)
    page_size = forms.IntegerField(min_value=1, required=False)
    page_index = forms.IntegerField(min_value=1, required=False)
Пример #2
0
class OrdersListForm(forms.Form):
    filter = forms.ChoiceField(choices=(('all', 1), ('pay', 2), ('consume', 3),
                                        ('finished', 4), ('expired', 5)),
                               required=False)
    start_created = forms.DateField(required=False)
    end_created = forms.DateField(required=False)
    payment_status = forms.IntegerField(required=False, max_value=500)
    page_size = forms.IntegerField(required=False)
    page_index = forms.IntegerField(required=False)
Пример #3
0
class DateForm(forms.Form):
    """A simple form for selecting a range of time."""
    start = forms.DateField(input_formats=("%Y-%m-%d", "%d.%m.%Y"))
    end = forms.DateField(input_formats=("%Y-%m-%d", "%d.%m.%Y"))

    def __init__(self, *args, **kwargs):
        super(DateForm, self).__init__(*args, **kwargs)
        self.fields['start'].widget.attrs['data-date-format'] = "dd-mm-yyyy"
        self.fields['end'].widget.attrs['data-date-format'] = "dd-mm-yyyy"
Пример #4
0
class UsageReportForm(forms.SelfHandlingForm):
    PERIOD_CHOICES = (
        ("1", _("Last day")),
        ("7", _("Last week")),
        (str(datetime.date.today().day), _("Month to date")),
        ("15", _("Last 15 days")),
        ("30", _("Last 30 days")),
        ("365", _("Last year")),
        ("other", _("Other")),
    )
    period = forms.ChoiceField(label=_("Period"),
                               required=True,
                               choices=PERIOD_CHOICES)
    date_from = forms.DateField(
        label=_("From"),
        required=False,
        widget=forms.TextInput(
            attrs={'data-line-chart-command': 'date_picker_change'}))
    date_to = forms.DateField(
        label=_("To"),
        required=False,
        widget=forms.TextInput(
            attrs={'data-line-chart-command': 'date_picker_change'}))

    def clean_date_from(self):
        period = self.cleaned_data['period']
        date_from = self.cleaned_data['date_from']
        if period == 'other' and date_from is None:
            raise ValidationError(_('Must specify start of period'))
        return date_from

    def clean_date_to(self):
        data = super(UsageReportForm, self).clean()
        date_from = data.get('date_from')
        date_to = data.get('date_to')
        period = data.get('period')
        if (period == 'other' and date_to is not None and date_from is not None
                and date_to < date_from):
            raise ValidationError(
                _("Start must be earlier "
                  "than end of period."))
        else:
            return date_to

    def handle(self, request, data):
        if hasattr(request, 'session'):
            request.session['date_from'] = data['date_from']
            request.session['date_to'] = data['date_to']
            request.session['period'] = data['period']
        return data
Пример #5
0
class ModifyDiscountForm(forms.SelfHandlingForm):

    id = forms.CharField(label=_("ID"), widget=forms.HiddenInput())
    name = forms.CharField(max_length=255, label=_("Name"))
    code = forms.CharField(max_length=32, label=_("Code"))
    discount_type_id = forms.ChoiceField(label = _('Discount Type'), choices=[])
    expiration_date = forms.DateField(label=_('Expiration Date'), required=False)
    amt = forms.FloatField(label=_('Amount'))
    notes = forms.CharField(max_length=255, label=_("Notes"), required=False)

    def __init__(self, request, *args, **kwargs):
        super(ModifyDiscountForm, self).__init__(request, *args, **kwargs)
        # set discount types
        self.fields['discount_type_id'].choices = gen_discount_types(request)

    def handle(self, request, data):
        data['expiration_date'] = str(data['expiration_date'])
        type_id = data.pop('id', None)
        if not type_id:
            exceptions.handle(request, _('Invalid request.'))
            return False
        try:
            modify_discount(request, type_id, data)
            return True

        except Exception:
            exceptions.handle(request, _('Unable to modify discount type.'))
Пример #6
0
class CreateDiscountForm(forms.SelfHandlingForm):

    name = forms.CharField(max_length=255, label=_("Name"))
    code = forms.CharField(max_length=32, label=_("Code"))
    discount_type_id = forms.ChoiceField(label=_('Discount Type'), choices=[])
    expiration_date = forms.DateField(label=_('Expiration Date (yyyy-mm-dd)'),
                                      required=False)
    amt = forms.FloatField(label=_('Amount'))
    notes = forms.CharField(max_length=255, label=_("Notes"), required=False)

    def __init__(self, request, *args, **kwargs):
        super(CreateDiscountForm, self).__init__(request, *args, **kwargs)
        # set discount types
        self.fields['discount_type_id'].choices = gen_discount_types(request)

    def handle(self, request, data):
        data['expiration_date'] = str(data['expiration_date'])

        # Check the expiration date
        if data['expiration_date'] == '' or data['expiration_date'] == 'None':
            data['expiration_date'] = None

        try:
            create_discount(request, data)
            return True

        except Exception:
            exceptions.handle(request, _('Unable to create discount type.'))
Пример #7
0
class UpdateUserInfoForm(forms.Form):
    """
    更改用户信息
    """
    password = forms.CharField(min_length=6, max_length=50, required=False)
    nickname = forms.CharField(max_length=100, required=False)
    gender = forms.IntegerField(min_value=1, max_value=2, required=False)
    birthday = forms.DateField(required=False)
    region = forms.CharField(max_length=64, required=False)
    head_picture = forms.ImageField(required=False)
Пример #8
0
class UserListForm(forms.Form):
    start_created = forms.DateField(required=False)
    end_created = forms.DateField(required=False)
    page_size = forms.IntegerField(min_value=1, required=False)
    page_index = forms.IntegerField(min_value=1, required=False)
Пример #9
0
class CreateApplicationCredentialForm(forms.SelfHandlingForm):
    # Hide the domain_id and domain_name by default
    name = forms.CharField(max_length=255, label=_("Name"))
    description = forms.CharField(
        widget=forms.widgets.Textarea(attrs={'rows': 4}),
        label=_("Description"),
        required=False)
    secret = forms.CharField(max_length=255, label=_("Secret"), required=False)
    expiration_date = forms.DateField(
        widget=forms.widgets.DateInput(attrs={'type': 'date'}),
        label=_("Expiration Date"),
        required=False)
    expiration_time = forms.TimeField(
        widget=forms.widgets.TimeInput(attrs={'type': 'time'}),
        label=_("Expiration Time"),
        required=False)
    roles = forms.MultipleChoiceField(
        widget=forms.widgets.SelectMultiple(),
        label=_("Roles"),
        required=False)
    access_rules = forms.CharField(
        widget=forms.Textarea(attrs={'rows': 5}),
        label=_("Access Rules"),
        required=False)
    unrestricted = forms.BooleanField(label=_("Unrestricted (dangerous)"),
                                      required=False)
    kubernetes_namespace = forms.CharField(max_length=255,
                                           label=_("Kubernetes Namespace"),
                                           initial="default",
                                           required=False)

    def __init__(self, request, *args, **kwargs):
        self.next_view = kwargs.pop('next_view', None)
        super(CreateApplicationCredentialForm, self).__init__(request, *args,
                                                              **kwargs)
        role_list = self.request.user.roles
        role_names = [role['name'] for role in role_list]
        role_choices = ((name, name) for name in role_names)
        self.fields['roles'].choices = role_choices
        keystone_version = api.keystone.get_identity_api_version(request)
        if keystone_version < (3, 13):
            del self.fields['access_rules']
        if not settings.KUBECONFIG_ENABLED:
            self.fields['kubernetes_namespace'].widget = widgets.HiddenInput()

    # We have to protect the entire "data" dict because it contains the
    # secret string.
    @sensitive_variables('data')
    def handle(self, request, data):
        try:
            LOG.info('Creating application credential with name "%s"',
                     data['name'])

            expiration = None
            if data['expiration_date']:
                if data['expiration_time']:
                    expiration_time = data['expiration_time']
                else:
                    expiration_time = datetime.datetime.min.time()
                expiration = datetime.datetime.combine(
                    data['expiration_date'], expiration_time)
            else:
                if data['expiration_time']:
                    expiration_time = data['expiration_time']
                    expiration_date = datetime.date.today()
                    expiration = datetime.datetime.combine(expiration_date,
                                                           expiration_time)
            if data['roles']:
                # the role list received from the form is a list of dicts
                # encoded as strings
                roles = [{'name': role_name} for role_name in data['roles']]
            else:
                roles = None
            if data.get('access_rules'):
                access_rules = data['access_rules']
            else:
                access_rules = None
            new_app_cred = api.keystone.application_credential_create(
                request,
                name=data['name'],
                description=data['description'] or None,
                secret=data['secret'] or None,
                expires_at=expiration or None,
                roles=roles,
                access_rules=access_rules,
                unrestricted=data['unrestricted']
            )
            self.request.session['application_credential'] = \
                new_app_cred.to_dict()
            (self.request.session['application_credential']
                ['kubernetes_namespace']) = data['kubernetes_namespace']
            request.method = 'GET'
            return self.next_view.as_view()(request)
        except exceptions.Conflict:
            msg = (_('Application credential name "%s" is already used.')
                   % data['name'])
            messages.error(request, msg)
        except Exception:
            exceptions.handle(
                request, _('Unable to create application credential.'))

    def clean(self):
        cleaned_data = super(CreateApplicationCredentialForm, self).clean()
        try:
            cleaned_data['access_rules'] = yaml.safe_load(
                cleaned_data['access_rules'])
        except yaml.YAMLError:
            msg = (_('Access rules must be a valid JSON or YAML list.'))
            raise forms.ValidationError(msg)
        return cleaned_data
Пример #10
0
class CreateApplicationCredentialForm(forms.SelfHandlingForm):
    # Hide the domain_id and domain_name by default
    name = forms.CharField(max_length=255, label=_("Name"))
    description = forms.CharField(
        widget=forms.widgets.Textarea(attrs={'rows': 4}),
        label=_("Description"),
        required=False)
    secret = forms.CharField(max_length=255, label=_("Secret"), required=False)
    expiration_date = forms.DateField(
        widget=forms.widgets.DateInput(attrs={'type': 'date'}),
        label=_("Expiration Date"),
        required=False)
    expiration_time = forms.TimeField(
        widget=forms.widgets.TimeInput(attrs={'type': 'time'}),
        label=_("Expiration Time"),
        required=False)
    roles = forms.MultipleChoiceField(
        widget=forms.widgets.SelectMultiple(),
        label=_("Roles"),
        required=False)
    unrestricted = forms.BooleanField(label=_("Unrestricted (dangerous)"),
                                      required=False)

    def __init__(self, request, *args, **kwargs):
        self.next_view = kwargs.pop('next_view', None)
        super(CreateApplicationCredentialForm, self).__init__(request, *args,
                                                              **kwargs)
        role_list = self.request.user.roles
        role_names = [role['name'] for role in role_list]
        role_choices = ((name, name) for name in role_names)
        self.fields['roles'].choices = role_choices

    # We have to protect the entire "data" dict because it contains the
    # secret string.
    @sensitive_variables('data')
    def handle(self, request, data):
        try:
            LOG.info('Creating application credential with name "%s"',
                     data['name'])

            expiration = None
            if data['expiration_date']:
                if data['expiration_time']:
                    expiration_time = data['expiration_time']
                else:
                    expiration_time = datetime.datetime.min.time()
                expiration = datetime.datetime.combine(
                    data['expiration_date'], expiration_time)
            else:
                if data['expiration_time']:
                    expiration_time = data['expiration_time']
                    expiration_date = datetime.date.today()
                    expiration = datetime.datetime.combine(expiration_date,
                                                           expiration_time)
            if data['roles']:
                # the role list received from the form is a list of dicts
                # encoded as strings
                roles = [{'name': role_name} for role_name in data['roles']]
            else:
                roles = None
            new_app_cred = api.keystone.application_credential_create(
                request,
                name=data['name'],
                description=data['description'] or None,
                secret=data['secret'] or None,
                expires_at=expiration or None,
                roles=roles,
                unrestricted=data['unrestricted']
            )
            self.request.session['application_credential'] = \
                new_app_cred.to_dict()
            request.method = 'GET'
            return self.next_view.as_view()(request)
        except exceptions.Conflict:
            msg = (_('Application credential name "%s" is already used.')
                   % data['name'])
            messages.error(request, msg)
        except Exception:
            exceptions.handle(request,
                              _('Unable to create application credential.'))
Пример #11
0
class AddTaskDetailsAction(workflows.Action):

    scheduleId = forms.IntegerField(label=_("ScheduleId)"),
                                    required=True,
                                    min_value=1,
                                    max_value=9999999,
                                    help_text=_("ScheduleId"))

    name = forms.CharField(label=_("Name"),
                           required=True,
                           max_length=80,
                           help_text=_("Name"))

    description = forms.CharField(label=_("Description"),
                                  required=True,
                                  max_length=120,
                                  help_text=_("Description"))

    hour = forms.IntegerField(label=_("Hour)"),
                              required=True,
                              min_value=1,
                              max_value=12,
                              help_text=_("1-12"))

    min = forms.IntegerField(label=_("Minute"),
                             required=True,
                             min_value=0,
                             max_value=59,
                             help_text=_("0 - 59"))

    period = forms.ChoiceField(label=_("Period"),
                               choices=[('AM', 'AM'), ('PM', 'PM')],
                               required=True,
                               help_text=_("AM or PM"))

    start = forms.DateField(
        label=_("Start date"),
        required=False,
        input_formats=("%Y-%m-%d", ),
        help_text=_("YYYY-MM-DD"),
        widget=forms.DateInput(attrs={'data-date-format': 'yyyy-mm-dd'}))

    end = forms.DateField(
        label=_("End date"),
        required=True,
        input_formats=("%Y-%m-%d", ),
        help_text=_("YYYY-MM-DD"),
        widget=forms.DateInput(attrs={'data-date-format': 'yyyy-mm-dd'}))

    enabled = forms.BooleanField(label=_("Enabled"),
                                 required=False,
                                 help_text=_("Enabled"))

    class Meta:
        name = _("Details")

    def __init__(self, request, context, *args, **kwargs):
        self.request = request
        self.context = context
        super(AddTaskDetailsAction, self).__init__(request, context, *args,
                                                   **kwargs)