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)
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)
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"
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
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.'))
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.'))
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)
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)
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
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.'))
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)