class EventCreationForm(forms.ModelForm): poll_timeframe_start = forms.DateTimeField(widget=widgets.DateTimeInput( format="%m/%d/%Y %H:%M:%S", attrs={'placeholder': "MM/DD/YYYY HH:MM:SS"}), ) poll_timeframe_end = forms.DateTimeField(widget=widgets.DateTimeInput( format="%m/%d/%Y %H:%M:%S", attrs={'placeholder': "MM/DD/YYYY HH:MM:SS"}), ) poll_end = forms.DateTimeField(widget=widgets.DateTimeInput( format="%m/%d/%Y %H:%M:%S", attrs={'placeholder': "MM/DD/YYYY HH:MM:SS"}), ) class Meta: model = Event fields = ('name', 'location', 'description', 'poll_timeframe_start', 'poll_timeframe_end', 'poll_end', 'event_length', 'is_public', 'allow_flex', 'on_time_attendees') labels = { "is_public": "Do you want to make this a public event?", "allow_flex": "Are you willing to shorten the event by up to 20 minutes to maximize attendance?", "on_time_attendees": "Can attendees arrive late or leave early?" } widgets = { 'location': GooglePointFieldWidget, }
class Meta: model = OpenHouse exclude = ['id', 'listingid'] widgets = { 'openhousestart': widgets.DateTimeInput(attrs={'type': 'date'}), 'openhouseend': widgets.DateTimeInput(attrs={'type': 'date'}), }
class EventForm(forms.Form): def __init__(self, *args, **kwargs): self.user = kwargs.pop('user') # self.tags = Tag.objects.all() super(EventForm, self).__init__(*args, **kwargs) event_name = forms.CharField(max_length=400, required=True) photo = forms.ImageField(max_length=100, required=True) description = forms.CharField(max_length=600, required=False, widget=forms.Textarea) start = forms.DateTimeField( widget=widgets.DateTimeInput(attrs={'class': '_datetimepicker'}), required=True) end = forms.DateTimeField( widget=widgets.DateTimeInput(attrs={'class': '_datetimepicker'}), required=True) price = forms.DecimalField( widget=widgets.NumberInput(attrs={'step': 0.50}), max_digits=10, decimal_places=2, required=True) source = forms.URLField(required=False) location = forms.CharField(max_length=255, required=True) location_gmaps_place_id = forms.CharField(widget=forms.HiddenInput(), max_length=255, required=True) categories = forms.MultipleChoiceField( widget=CategoryCheckboxSelectMultiple(attrs={'class': 'category'}), choices=get_tags)
class Meta: model = room_models.Room fields = ( "name", "description", "country", "city", "price", "address", "guests", "beds", "bedrooms", "baths", "room_type", "amenities", "facilities", "house_rules", "check_in", "check_out", "instant_book", ) widgets = { "check_in": widgets.DateTimeInput(format="%Y-%m-%d %H:%M:%S"), "check_out": widgets.DateTimeInput(format="%Y-%m-%d %H:%M:%S"), }
class Meta: model = models.DomainTop fields = "__all__" widgets = { 'domain_name': form_widgets.TextInput(attrs={'class': 'form-control'}), 'creation_date': form_widgets.DateTimeInput(attrs={'class': 'form-control'}), 'expiration_date': form_widgets.DateTimeInput(attrs={'class': 'form-control'}), 'icp_num': form_widgets.TextInput(attrs={'class': 'form-control'}), 'gongan_num': form_widgets.TextInput(attrs={'class': 'form-control'}), 'ssl_creation_date': form_widgets.DateInput(attrs={'class': 'form-control'}), 'ssl_expiration_date': form_widgets.DateInput(attrs={'class': 'form-control'}), 'ssl_brand': form_widgets.TextInput(attrs={'class': 'form-control'}), 'ssl_proxy': form_widgets.TextInput(attrs={'class': 'form-control'}), 'is_public': form_widgets.NullBooleanSelect(attrs={'class': 'form-control'}), } error_messages = { 'domain_name': { 'required': '*名称不能为空' }, }
class Meta(object): """Form attributes that are not fields.""" model = models.Lend fields = ['item_id', 'user_id', 'due_out', 'due_back', 'out', 'back'] widgets = { 'due_out': widgets.DateInput(attrs = {'type': 'date'}), 'due_back': widgets.DateInput(attrs = {'type': 'date'}), 'out': widgets.DateTimeInput(attrs = {'type': 'datetime'}), 'back': widgets.DateTimeInput(attrs = {'type': 'datetime'}), }
class EventResponseForm(forms.ModelForm): responder_start = forms.DateTimeField(widget=widgets.DateTimeInput( format="%m/%d/%Y %H:%M:%S", attrs={'placeholder': "MM/DD/YYYY HH:MM:SS"}), ) responder_end = forms.DateTimeField(widget=widgets.DateTimeInput( format="%m/%d/%Y %H:%M:%S", attrs={'placeholder': "MM/DD/YYYY HH:MM:SS"}), ) class Meta: model = PollResponse fields = ('responder_start', 'responder_end' ) #still have to figure out declining poll
class Meta: model = TAXII_Remote_Collection fields = ['name', 'begin_timestamp', 'poll_period'] widgets = { 'name': widgets.TextInput( attrs={ 'id': 'post_collection_name', 'class': 'form-control', 'placeholder': '' }), 'begin_timestamp': widgets.DateTimeInput( attrs={ 'id': 'post_begin_time', 'class': 'form-control', 'placeholder': '' }), 'poll_period': widgets.NumberInput( attrs={ 'id': 'post_poll_period', 'class': 'form-control', 'placeholder': '' }), }
class Meta: model = Event fields = [ 'title', 'photo', 'description', 'start_datetime', 'end_datetime', 'price', 'location_gmaps_place_id', 'location_friendly_name' ] widgets = { 'description': forms.Textarea, 'start_datetime': widgets.DateTimeInput(attrs={'class': '_datetimepicker'}), 'end_datetime': widgets.DateTimeInput(attrs={'class': '_datetimepicker'}), 'location_gmaps_place_id': forms.HiddenInput, }
class Meta: model = Listings exclude = ['id', 'agent_id', 'soldondate', 'apartmentid'] widgets = { 'price': widgets.NumberInput(attrs={'class': 'form-control'}), 'description': widgets.TextInput(attrs={'class': 'form-control'}), 'registered': widgets.DateTimeInput(attrs={'type': 'date'}) }
class Meta: model = models.Iport fields = "__all__" widgets = { "hostname":widgets.TextInput(attrs={"class":"form-control"}), "ip":widgets.TextInput(attrs={"class":"form-control"}), "port":widgets.NumberInput(attrs={"class":"form-control"}), "creat_time":widgets.DateTimeInput(attrs={"class":"form-control"}) }
class InboundEmailForm(ModelForm): sent = DateTimeField(input_formats=(DATETIME_FORMAT, ), widget=widgets.DateTimeInput(format=DATETIME_FORMAT)) class Meta: model = InboundEmail fields = ( 'recipients', 'sent', )
class Meta: model = ToDo fields = ('title', 'data', 'dead_line') excludes = ("is_done") widgets = { 'dead_line': widgets.DateTimeInput(attrs={ 'required': True, 'placeholder': 'DD/MM/YYYY HH:MM[:SS]' }) }
def __init__(self, *args, **kwargs): super(InvoiceForm, self).__init__(*args, **kwargs) # Some fields are hidden until the invoice is final if not self.instance.finalized: for fld in self.hidden_until_finalized: del self.fields[fld] if not settings.EU_VAT: del self.fields['reverse_vat'] if 'data' in kwargs and 'recipient_user' in kwargs[ 'data'] and kwargs['data']['recipient_user'] != '': # Postback with this field, so allow this specifi cuser self.fields['recipient_user'].queryset = User.objects.filter( pk=kwargs['data']['recipient_user']) elif self.instance and self.instance.recipient_user: self.fields['recipient_user'].queryset = User.objects.filter( pk=self.instance.recipient_user.pk) else: self.fields['recipient_user'].queryset = User.objects.filter(pk=-1) self.fields[ 'recipient_user'].label_from_instance = lambda u: '{0} {1} ({2})'.format( u.first_name, u.last_name, u.username) self.fields['canceltime'].widget = widgets.DateTimeInput() self.fields['allowedmethods'].widget = forms.CheckboxSelectMultiple() self.fields[ 'allowedmethods'].queryset = InvoicePaymentMethod.objects.filter() self.fields[ 'allowedmethods'].label_from_instance = lambda x: "{0}{1}".format( x.internaldescription, x.active and " " or " (INACTIVE)") self.fields['accounting_account'].choices = [ (0, '----'), ] + [(a.num, "%s: %s" % (a.num, a.name)) for a in Account.objects.filter(availableforinvoicing=True)] self.fields['accounting_object'].choices = [ ('', '----'), ] + [(o.name, o.name) for o in Object.objects.filter(active=True)] if self.instance.finalized: # All fields should be read-only for finalized invoices for fn, f in list(self.fields.items()): if self.instance.ispaid or fn not in self.available_in_finalized: f.required = False if type(f.widget).__name__ in ('TextInput', 'Textarea', 'DateInput', 'DateTimeInput'): f.widget.attrs['readonly'] = "readonly" else: f.widget.attrs['disabled'] = True
class Meta: model = Proposicao fields = [ 'data_envio', 'descricao', 'justificativa_devolucao', 'gerar_protocolo', 'numero_de_paginas' ] widgets = { 'descricao': widgets.Textarea(attrs={ 'readonly': 'readonly', 'rows': 4 }), 'data_envio': widgets.DateTimeInput(attrs={'readonly': 'readonly'}), }
class InlineReminderForm(ModelForm): scheduled_time = DateTimeField( input_formats=(DATETIME_FORMAT, ), widget=widgets.DateTimeInput(format=DATETIME_FORMAT)) def __init__(self, *args, **kwargs): """If the reminder has already been sent, disable the scheduled_time field""" super(InlineReminderForm, self).__init__(*args, **kwargs) if self.instance.sent_time is not None: self.fields['scheduled_time'].disabled = True sent_time = self.instance.sent_time.strftime(DATETIME_FORMAT) self.fields['scheduled_time'].help_text = 'Sent %s' % sent_time class Meta: model = Reminder fields = ('scheduled_time', )
class emp_form(forms.Form): id = fields.IntegerField( label='员工ID:', widget=widgets.TextInput(attrs={'class': 'form-control'}), ) name = fields.CharField( max_length=32, widget=widgets.TextInput(attrs={'class': 'form-control'}), label='姓名:', ) depart = ModelChoiceField( queryset=models.depart.objects.all(), widget=widgets.Select(attrs={'class': 'form-control'}), label='部门:', ) m_time = fields.DateTimeField( label='修改时间:', widget=widgets.DateTimeInput(attrs={'class': 'form-control'}), )
class FoiaForm(ModelForm): sent = DateTimeField(input_formats=(DATE_FORMAT, ), widget=widgets.DateTimeInput(format=DATE_FORMAT)) recipients = RecipientsChoiceField(queryset=Recipient.objects.all()) def clean_recipients(self): return self.cleaned_data['recipients'] class Meta: model = Foia fields = ( 'email', 'request_subject', 'recipients', 'sent', 'notes', 'project', 'agency_id', )
class Meta: model = models.Book # 指定哪张表 fields = "__all__" # 列出所有字段 # 不用在这里添加,直接在models文件下 加 verbose_name参数就可以改成中文 # labels = { # "title": "书名", # "price": "价格", # "publisher": "出版社", # "author": "作者", # "date": "日期" # } from django.forms import widgets as wid # 因为重名,所以起个别名 widgets = { "date": wid.DateTimeInput(attrs={ "type": "date", "class": "form-control" }), # 还可以自定义属性 "title": wid.TextInput(attrs={"class": "form-control"}), # 还可以自定义属性 "price": wid.TextInput(attrs={"class": "form-control"}), "publisher": wid.Select(attrs={"class": "form-control"}), "author": wid.SelectMultiple(attrs={"class": "form-control"}) } error_messages = { "date": { 'required': "年龄不能为空" }, "price": { 'required': "年龄不能为空" }, "publisher": { 'required': "年龄不能为空" }, "author": { 'required': "年龄不能为空" } }
class Meta: model = OpenHouses exclude = ['id'] widgets = { 'property': widgets.Select(attrs={'class': 'form-control'}), 'user': widgets.HiddenInput(attrs={'class': 'form-control'}), 'length': widgets.NumberInput(attrs={ 'class': 'form-control', 'placeholder': 'Length in minutes' }), 'time': widgets.DateTimeInput(attrs={ 'class': 'form-control', 'placeholder': 'dd/mm/yyyy hh:mm' }) }
class Meta: model = User fields = [ 'username', 'Name1', 'Name2', 'Name3', 'LastName1', 'LastName2', 'BirthDate', 'Email', 'Phone', 'FKLicenceType', ] labels = { 'username':'******', 'Name1':'Name1', 'Name2': 'Name2', 'Name3': 'Name3', 'LastName1': 'LastName', 'LastName2': 'LastName2', 'BirthDate': 'BirthDate', 'Email': 'Email', 'Phone': 'Phone', 'FKLicenceType':'FKLicenceType', } widgets = { 'username': widgets.TextInput(attrs={'class': 'form-control'}), 'Name1': widgets.TextInput(attrs={'class': 'form-control'}), 'Name2': widgets.TextInput(attrs={'class': 'form-control'}), 'Name3': widgets.TextInput(attrs={'class': 'form-control'}), 'LastName1': widgets.TextInput(attrs={'class': 'form-control'}), 'LastName2': widgets.TextInput(attrs={'class': 'form-control'}), 'Email': widgets.TextInput(attrs={'class': 'form-control'}), 'Phone': widgets.TextInput(attrs={'class': 'form-control'}), 'BirthDate': widgets.DateTimeInput(attrs={'class': 'form-control'}), 'FKLicenceType ': widgets.Select(attrs={'class': 'form-control'}), }
class BookFrom(forms.Form): title = forms.CharField( label='书名', max_length=32, error_messages={"required": "书名不能为空"}, widget=widgets.TextInput(attrs={"class": "form-control"})) publishDate = forms.DateField( label='出版日期', help_text="格式如:1990-1-1", error_messages={ "required": "出版日期不能为空", "invalid": "日期不合法", }, widget=widgets.DateTimeInput(attrs={"class": "form-control"})) price = forms.DecimalField( label='价格', max_digits=5, decimal_places=2, error_messages={ "required": "价格不能为空", "invalid": "请输入数字" }, widget=widgets.NumberInput(attrs={"class": "form-control"})) publisher = forms.ChoiceField( label='出版社', widget=widgets.Select(attrs={"class": "form-control"})) authors = forms.MultipleChoiceField( label='作者', error_messages={"required": "作者不能为空"}, widget=widgets.SelectMultiple(attrs={"class": "form-control"})) def __init__(self, *args, **kwargs): super(BookFrom, self).__init__(*args, **kwargs) self.fields['publisher'].choices = models.Publisher.objects.all( ).order_by('pid').values_list('pid', 'name') self.fields['authors'].choices = models.Author.objects.all().order_by( 'aid').values_list('aid', 'name')
class SqlComForm(Form): title = fields.CharField( max_length=60, label='工单标题', error_messages={'required': '标题不能为空'}, widget=widgets.TextInput( attrs={ 'class': 'form-control', 'style': 'min-width:200px; max-width:500px', 'placeholder': '简述工单功能与作用' })) # version = fields.ChoiceField( # label='发布版本号', # widget=widgets.Select(choices=[], # attrs={'class': 'form-control', # 'style': 'min-width:200px; max-width:500px'}) # ) host = fields.CharField(label='数据库地址', widget=widgets.Select(choices=[], attrs={ 'class': 'form-control', 'id': 'chose_db_ip', 'style': 'min-width:200px;' ' max-width:500px' '' })) port = fields.IntegerField( widget=widgets.NumberInput(attrs={ 'class': 'form-control', 'style': 'min-width:200px; max-width:500px' }), label='端口', max_value=65530, min_value=1025, error_messages={ 'invalid': '请输入有效端口号', 'min_value': '请输入一个大于或等于1025的端口号', 'max_value': '请输入一个小于或等于65530的端口号', 'placeholder': '端口号' }) db_name = fields.CharField( label='库名', strip=True, widget=widgets.TextInput( attrs={ 'class': 'form-control', 'style': 'min-width:200px; max-width:500px', 'placeholder': '库名' })) review_name = fields.CharField(label='审核人', widget=widgets.Select( choices=[], attrs={ 'class': 'form-control', 'style': 'min-width:200px; max-width:500px' })) run_time = fields.DateTimeField( label='工单执行时间', required=False, widget=widgets.DateTimeInput( attrs={ 'class': 'form-control', 'style': 'min-width:200px; max-width:500px', 'placeholder': '格式为:2017-06-01 20:00:00 默认为立即执行,当前还未加入定时执行功能' })) is_commit = fields.ChoiceField( label='提交审核', initial=0, choices=((0, '否'), (1, '是')), widget=widgets.Select(attrs={ 'class': 'form-control', 'style': 'min-width:200px; max-width:500px' }), ) sql_content = fields.CharField( label='SQL 内容', error_messages={'required': 'SQL 内容不能为空'}, widget=widgets.Textarea( attrs={ 'class': 'form-control', 'style': 'min-width:200px;' 'max-width:800px;height: 100px' })) comm = fields.CharField( label='工单说明', required=False, widget=widgets.Textarea( attrs={ 'class': 'form-control', 'style': 'min-width:200px; max-width:500px;height: 35px', 'placeholder': '审核中有警告时,依然需要提交执行时, 需要在此处写明原因' })) def __init__(self, *args, **kwargs): super(SqlComForm, self).__init__(*args, **kwargs) # self.fields['version'].widget.choices = models.HostGroup.objects.values_list('id', 'host_group_jd') self.fields[ 'host'].widget.choices = models.HostInfo.objects.values_list( 'id', 'host_ip') user_info = models.UserInfo.objects.filter( userrolerelationship__role_id=1).values_list('id', 'user_name') self.fields['review_name'].widget.choices = user_info
class Meta: model = models.Assets fields = '__all__' error_message = { 'hostname': { 'required': '主机名不能为空', }, 'wip': { 'required': '外网地址不能为空', 'invalid': 'IP地址格式错误' }, 'lip': { 'required': '内网地址不能为空', 'invalid': 'IP地址格式错误' }, 'system_type': { 'required': '系统类型不能为空' }, 'ssh_port': { 'required': '端口不能为空', 'invalid': '格式错误,请输入数字' }, } widgets = { 'hostname': widgets.TextInput(attrs={ 'class': 'form-control', }), 'lip': widgets.TextInput(attrs={ 'class': 'form-control', }), 'wip': widgets.TextInput(attrs={ 'class': 'form-control', }), 'cpu': widgets.TextInput(attrs={ 'class': 'form-control', }), 'memory': widgets.TextInput(attrs={ 'class': 'form-control', }), 'disk': widgets.TextInput(attrs={ 'class': 'form-control', }), 'instance_id': widgets.TextInput(attrs={ 'class': 'form-control', }), 'system_type': widgets.TextInput(attrs={ 'class': 'form-control', }), 'user': widgets.Select(attrs={ 'class': 'form-control', }), 'buy_time': widgets.DateTimeInput( attrs={ 'class': 'form-control layer-date', 'placeholder': "YYYY-MM-DD hh:mm:ss", "onclick": "laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})" }), 'expire_time': widgets.DateTimeInput( attrs={ 'class': 'form-control layer-date', 'placeholder': "YYYY-MM-DD hh:mm:ss", "onclick": "laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})" }), 'online_status': widgets.Select(attrs={'class': 'form-control'}), 'ssh_port': widgets.TextInput(attrs={ 'class': 'form-control', }), 'serverid': widgets.TextInput(attrs={ 'class': 'form-control', }), 'gameid': widgets.TextInput(attrs={'class': 'form-control'}), 'memo': widgets.TextInput(attrs={'class': 'form-control'}), } help_texts = { 'hostname': '* 必填项目,名字唯一,主机名这里请不要写IP', 'user': '******' }
class EventModelForm(ModelForm): update_date = DateTimeField( input_formats=(DATE_FORMAT, ), widget=widgets.DateTimeInput(format=DATE_FORMAT)) foia = TypedChoiceField(empty_value=None, initial=None, coerce=lambda pk: Foia.objects.get(pk=pk)) email = ModelChoiceField(queryset=InboundEmail.objects.all(), required=False, widget=widgets.HiddenInput) def __init__(self, *args, **kwargs): super(EventModelForm, self).__init__(*args, **kwargs) if 'initial' in kwargs and 'email' in kwargs['initial']: email = InboundEmail.objects.filter( pk=kwargs['initial']['email']).select_related( 'sender').first() sender_projects = Project.objects.filter( collaborators=email.sender).values_list('pk', flat=True) prefix_re = re.compile('(re|fwd):', flags=re.IGNORECASE) generic_language_re = re.compile( r'((?:tpia|record(?:s)*|foia|public\s+information)\s+request)(?!\s+log(?:s)*)', flags=re.IGNORECASE | re.VERBOSE) def strip_subject(subject): prefix_removed = prefix_re.sub('', subject) generics_removed = generic_language_re.sub('', prefix_removed) return ''.join(_ for _ in generics_removed if _.isalpha() or _ == ' ') cleaned_email_subject = strip_subject(email.subject) def match_email_to_foia(foia): score = fuzz.ratio( strip_subject(foia['request_subject']), cleaned_email_subject, ) # Boost the score if the sender is the same and for requests # that are in one of the sender's projects if foia['email__sender__pk'] == email.sender.pk: score += 25 elif foia['project__pk'] is not None and \ foia['project__pk'] in sender_projects: score += 20 days_apart = (email.sent.date() - foia['sent']).days # Penalize requests that are older than 30 days, but max out # the penalty at the 180-day mark min_days = 30 max_days = 180 normalized_days_apart = min(max(min_days, days_apart), max_days) - min_days score *= (1 - float(normalized_days_apart) / float(max_days)) return score all_foias = Foia.objects.all().select_related( 'email', 'email__sender').values( 'pk', 'sent', 'request_subject', 'email__sender__pk', 'email__sender__last_name', 'project__pk', ) for foia in all_foias: foia['label'] = '%s: %s' % ( foia['email__sender__last_name'], foia['request_subject'], ) ranked_foias = sorted(all_foias, key=match_email_to_foia, reverse=True) self.fields['foia'].choices = [( f['pk'], f['label'], ) for f in ranked_foias] else: self.fields['foia'].choices = Foia.objects.all().select_related( 'email__sender').values_list('pk', 'request_subject') class Meta: model = Event fields = ( 'foia', 'status', 'update_date', 'amount_asked', 'amount_paid', 'notes', 'email', ) widgets = {'status': RadioSelect(choices=Event.STATUS_CHOICES)}
class DataReportFilter(rest_framework_filters.FilterSet): consumer_id = rest_framework_filters.ModelChoiceFilter( queryset=consumer_models.Consumer.objects.all(), label='Consumer', ) feeder_id = rest_framework_filters.ModelChoiceFilter( queryset=feeder_models.Feeder.objects\ .select_related()\ .all(), label='Feeder', ) channel_id = rest_framework_filters.ModelChoiceFilter( queryset=channel_models.Channel.objects\ .select_related()\ .all(), label='Channel', ) channel_type = rest_framework_filters.ChoiceFilter( choices=channel_models.Channel.choices, ) req = rest_framework_filters.ChoiceFilter( choices=REQ_CHOISES, field_name=None, label='req', ) interval = rest_framework_filters.ChoiceFilter( choices=INTERVAL_CHOISES, field_name=None, label='interval', ) tariff = rest_framework_filters.ChoiceFilter( choices=TARIFF_CHOISES, field_name=None, label='tariff', ) t1 = rest_framework_filters.DateTimeFromToRangeFilter( label='t1', widget=widgets.DateTimeInput(attrs={ 'placeholder': 'YYYYMMDDHHMMSS', })) t2 = rest_framework_filters.DateTimeFromToRangeFilter( label='t2', widget=widgets.DateTimeInput(attrs={ 'placeholder': 'YYYYMMDDHHMMSS', })) class Meta: model = channel_models.Channel fields = [ 'consumer_id', 'feeder_id', 'channel_id', 'channel_type', 'req', 'interval', 'tariff', 't1', 't2', ]