Example #1
0
class timeSheetForm(forms.ModelForm):
    class Meta:
        model = Timesheet
        fields = "__all__"

    # def __init__(self,*args,**kwargs):
    #     super(timeSheetForm, self).__init__(*args, **kwargs)
    #     self.fields['username'].initial = self.data
    #     print(self.fields['user'])
    # fields=['project','user','task_title','task_description','priority','starti
    # ng_time','ending_time']
    PRIORITY_STATUS = [
        ('H', 'High'),
        ('M', 'Medium'),
        ('L', 'Low'),
    ]

    project = forms.ModelChoiceField(queryset=Project.objects.all())
    user = forms.ModelChoiceField(queryset=User.objects.all(),
                                  widget=forms.HiddenInput())
    # user = forms.ModelChoiceField(queryset=User.objects.filter(pk=2))
    task_title = forms.CharField(max_length=250)
    task_description = forms.CharField(widget=forms.TextInput({}))
    priority = forms.CharField(
        max_length=1,
        widget=forms.Select(choices=PRIORITY_STATUS),
    )
    starting_time = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    ending_time = forms.SplitDateTimeField(widget=AdminSplitDateTime())
Example #2
0
class GenerateNewsletterForm(forms.ModelForm):
    """
    Form for generating a newsletter.
    """
    start_date = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    end_date = forms.SplitDateTimeField(widget=AdminSplitDateTime())

    class Meta:
        model = Newsletter
        fields = ['type', 'start_date', 'end_date']
Example #3
0
    def __init__(self, *args, **kwargs):
        super(CreateMeasureForm, self).__init__(*args, **kwargs)
        self.fields['vote_start'].widget = AdminSplitDateTime()
        self.fields['vote_start'].widget.attrs['style'] = "padding:0.25em;text-align:center"
        self.fields['vote_start'].widget.attrs['size'] = 10
        self.fields['vote_end'].widget = AdminSplitDateTime()
        self.fields['vote_end'].widget.attrs['style'] = "padding:0.25em;text-align:center"
        self.fields['vote_end'].widget.attrs['size'] = 10

        self.fields['quorum'].widget.attrs['style'] = "width:50px"
        self.fields['summary'].widget.attrs['style'] = "width: 100%; height: 75px;"
        self.fields['summary'].widget.attrs['placeholder'] = "Measury summary goes here."
        self.fields['name'].widget.attrs['placeholder'] = "Measure Title"
Example #4
0
class BookingForm(ModelForm):
    start_time = SplitDateTimeField(
        widget=AdminSplitDateTime(),
        input_date_formats=settings.DATE_INPUT_FORMATS,
        input_time_formats=settings.TIME_INPUT_FORMATS)
    end_time = SplitDateTimeField(
        widget=AdminSplitDateTime(),
        input_date_formats=settings.DATE_INPUT_FORMATS,
        input_time_formats=settings.TIME_INPUT_FORMATS)

    class Meta:
        model = Booking
        fields = "__all__"

    def clean(self):
        cleaned_data = super(BookingForm, self).clean()
        start_time = cleaned_data.get("start_time")
        end_time = cleaned_data.get("end_time")
        car = cleaned_data.get("car")
        driver = cleaned_data.get("driver")

        if not start_time or not end_time:
            return

        #CHECK FOR OVERLAPPING BOOKINGS on Car or Driver
        overlapping_bookings = Booking.objects.filter(
            Q(car__pk=car.pk) | Q(driver__pk=driver.pk)).filter(
                Q(start_time__gte=start_time, start_time__lt=end_time)
                | Q(end_time__gt=start_time, end_time__lte=end_time))
        if overlapping_bookings.count() > 0:
            raise ValidationError(
                "This car is unavailable for this date/time or you already have another car booked for this slot."
            )

        #CHECK FOR PADDING TIME
        start_time_minus_2hrs = start_time - timedelta(hours=2)
        invalid_bookings = Booking.objects.filter(car__pk=car.pk).filter(
            Q(end_time__gt=start_time_minus_2hrs)
            & Q(start_time__lt=start_time_minus_2hrs))
        if invalid_bookings.count() > 0:
            raise ValidationError(
                "This car is unavailable for this start time.")

        end_time_plus_2hrs = end_time + timedelta(hours=2)
        invalid_bookings = Booking.objects.filter(car__pk=car.pk).filter(
            Q(start_time__lt=end_time_plus_2hrs)
            & Q(end_time__gt=end_time_plus_2hrs))
        if invalid_bookings.count() > 0:
            raise ValidationError(
                "This booking must be ended at an earlier time.")
 def _get_form_fields(self):
     return OrderedDict(
         (
             (self.lookup_kwarg_gte, SplitDateTimeField(
                 label='',
                 widget=AdminSplitDateTime(attrs={'style': 'width: 50%', 'placeholder': 'From'}),
                 required=False
             )),
             (self.lookup_kwarg_lte, SplitDateTimeField(
                 label='',
                 widget=AdminSplitDateTime(attrs={'style': 'width: 50%', 'placeholder': 'To'}),
                 required=False
             )),
         )
     )
Example #6
0
class DREventFilterForm(forms.ModelForm):

    scheduled_notification_time = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    start = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    end = forms.SplitDateTimeField(widget=AdminSplitDateTime())

    class Meta:
        exclude = []
        model = DREvent

    def __init__(self, *args, **kwargs):
        super(DREventFilterForm, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.pk:
            self.fields['dr_program'].widget.attrs['readonly'] = True
Example #7
0
  def __init__(self, *args, **kwargs):
    # checking for user argument here for a more
    # localized form
    self.user = None
    self.timezone = None
    if kwargs.get('instance',None):
      kwargs['initial'] = kwargs.pop('initial',{})
      kwargs['initial']['publish_dt'] = kwargs['instance'].publish_dt

    if 'user' in kwargs:
      self.user = kwargs.pop('user', None)
    super(PostForm, self).__init__(*args, **kwargs)
    self.fields['publish_dt'].widget = AdminSplitDateTime()
    self.fields['slug'].help_text = "URL will be /blog/your-name/<b>slug-goes-here</b>/"
    self.fields['tags'].help_text = "Separate tags with commas. Input will be lowercased."
    self.fields['publish_dt'].help_text = "<i>YYYY-MM-DD</i> and <i>HH:MM</i> (24-hour time)"
    self.fields['photo'].widget=ForeignKeyRawIdWidget(Post._meta.get_field("photo").rel,admin.site)
    # add span class to charfields
    for field in self.fields.values():
      if isinstance(field, forms.fields.CharField):
        if 'class' in field.widget.attrs:
          field.widget.attrs['class'] = "%s %s" % (
            field.widget.attrs['class'],
            'span8',
          )
        else:
          field.widget.attrs['class'] = 'span8'
Example #8
0
class TestForm(forms.Form):
    """
    Form with a variety of widgets to test bootstrap3 rendering.
    """
    date = forms.DateField(required=False)
    datetime = forms.SplitDateTimeField(widget=AdminSplitDateTime(), required=False)
    subject = forms.CharField(
        max_length=100,
        help_text='my_help_text',
        required=True,
        widget=forms.TextInput(attrs={'placeholder': 'placeholdertest'}),
    )
    password = forms.CharField(widget=forms.PasswordInput)
    message = forms.CharField(required=False, help_text='<i>my_help_text</i>')
    sender = forms.EmailField(
        label='Sender © unicode',
        help_text='E.g., "*****@*****.**"')
    secret = forms.CharField(initial=42, widget=forms.HiddenInput)
    cc_myself = forms.BooleanField(
        required=False,
        help_text='cc stands for "carbon copy." You will get a copy in your mailbox.'
    )
    select1 = forms.ChoiceField(choices=RADIO_CHOICES)
    select2 = forms.MultipleChoiceField(
        choices=RADIO_CHOICES,
        help_text='Check as many as you like.',
    )
    select3 = forms.ChoiceField(choices=MEDIA_CHOICES)
    select4 = forms.MultipleChoiceField(
        choices=MEDIA_CHOICES,
        help_text='Check as many as you like.',
    )
    category1 = forms.ChoiceField(
        choices=RADIO_CHOICES, widget=forms.RadioSelect)
    category2 = forms.MultipleChoiceField(
        choices=RADIO_CHOICES,
        widget=forms.CheckboxSelectMultiple,
        help_text='Check as many as you like.',
    )
    category3 = forms.ChoiceField(
        widget=forms.RadioSelect, choices=MEDIA_CHOICES)
    category4 = forms.MultipleChoiceField(
        choices=MEDIA_CHOICES,
        widget=forms.CheckboxSelectMultiple,
        help_text='Check as many as you like.',
    )
    addon = forms.CharField(
        widget=forms.TextInput(attrs={'addon_before': 'before', 'addon_after': 'after'}),
    )

    required_css_class = 'bootstrap3-req'

    # Set this to allow tests to work properly in Django 1.10+
    # More information, see issue #337
    use_required_attribute = False

    def clean(self):
        cleaned_data = super(TestForm, self).clean()
        raise forms.ValidationError(
            "This error was added to show the non field errors styling.")
Example #9
0
class CreatePostForm(forms.ModelForm):
    upload_date = forms.SplitDateTimeField(initial=timezone.now,
                                           widget=AdminSplitDateTime())

    class Meta:
        model = Post
        fields = ['title', 'category', 'upload_date', 'cover', 'body']
Example #10
0
class CommitForm(forms.Form):
    PUBLISH_RADIO_CHOICES = (
        ('now', _('Immediately')),
        ('later', _('Later')),
    )

    message = forms.CharField(widget=forms.Textarea,
                              label=_('Notes (optional)'),
                              required=False)
    publish_radio = forms.ChoiceField(
        label=_('Publish at'),
        widget=forms.RadioSelect,
        choices=PUBLISH_RADIO_CHOICES,
        initial=PUBLISH_RADIO_CHOICES[0][0],
    )
    publish_at = forms.SplitDateTimeField(initial=timezone.now,
                                          localize=True,
                                          required=False,
                                          widget=AdminSplitDateTime())

    def get_publish_at(self):
        if self.cleaned_data['publish_radio'] == 'now':
            publish_at = timezone.now()
        else:
            publish_at = self.cleaned_data['publish_at']
        return publish_at

    def commit(self, obj, user):
        return obj.commit(user,
                          message=self.cleaned_data['message'],
                          publish_at=self.get_publish_at())
class TestForm(forms.Form):
    """
    Form with a variety of widgets to test bootstrap4 rendering.
    """

    date = forms.DateField(required=False)
    datetime = forms.SplitDateTimeField(widget=AdminSplitDateTime(), required=False)
    subject = forms.CharField(
        max_length=100,
        help_text="my_help_text",
        required=True,
        widget=forms.TextInput(attrs={"placeholder": "placeholdertest"}),
    )
    xss_field = forms.CharField(
        label='XSS" onmouseover="alert(\'Hello, XSS\')" foo="', max_length=100
    )
    password = forms.CharField(widget=forms.PasswordInput)
    message = forms.CharField(required=False, help_text="<i>my_help_text</i>")
    sender = forms.EmailField(label="Sender © unicode", help_text='E.g., "*****@*****.**"')
    secret = forms.CharField(initial=42, widget=forms.HiddenInput)
    cc_myself = forms.BooleanField(
        required=False,
        help_text='cc stands for "carbon copy." You will get a copy in your mailbox.',
    )
    select1 = forms.ChoiceField(choices=RADIO_CHOICES)
    select2 = forms.MultipleChoiceField(
        choices=RADIO_CHOICES, help_text="Check as many as you like."
    )
    select3 = forms.ChoiceField(choices=MEDIA_CHOICES)
    select4 = forms.MultipleChoiceField(
        choices=MEDIA_CHOICES, help_text="Check as many as you like."
    )
    category1 = forms.ChoiceField(choices=RADIO_CHOICES, widget=forms.RadioSelect)
    category2 = forms.MultipleChoiceField(
        choices=RADIO_CHOICES,
        widget=forms.CheckboxSelectMultiple,
        help_text="Check as many as you like.",
    )
    category3 = forms.ChoiceField(widget=forms.RadioSelect, choices=MEDIA_CHOICES)
    category4 = forms.MultipleChoiceField(
        choices=MEDIA_CHOICES,
        widget=forms.CheckboxSelectMultiple,
        help_text="Check as many as you like.",
    )
    category5 = forms.ChoiceField(widget=RadioSelectButtonGroup, choices=MEDIA_CHOICES)
    addon = forms.CharField(
        widget=forms.TextInput(attrs={"addon_before": "before", "addon_after": "after"})
    )
    polygon = gisforms.PointField()

    required_css_class = "bootstrap4-req"

    # Set this to allow tests to work properly in Django 1.10+
    # More information, see issue #337
    use_required_attribute = False

    def clean(self):
        cleaned_data = super(TestForm, self).clean()
        raise forms.ValidationError("This error was added to show the non field errors styling.")
        return cleaned_data
Example #12
0
class RescheduleForm(forms.Form):
    scheduled_execution = forms.SplitDateTimeField(
        required=True,
        initial=None,
        label="New execution time",
        widget=AdminSplitDateTime(),
    )
Example #13
0
 def __init__(self, *args, **kwargs):
     field_name = kwargs.pop('field_name')
     super(DateTimeRangeForm, self).__init__(*args, **kwargs)
     self.fields['%s__gte' % field_name] = forms.DateTimeField(
         label='',
         widget=AdminSplitDateTime(attrs={'placeholder': _('From Date')}),
         localize=True,
         required=False)
Example #14
0
 def change_widget(self, field, opts=None):
     widget = self._get_widget_from_opts(opts)
     if widget == 'date':
         field = forms.DateField(label=field.label,
                                 help_text=field.help_text)
         field.widget = AdminDateWidget()
     else:
         field.widget = AdminSplitDateTime()
     return field
Example #15
0
    def __init__(self, *args, **kwargs):
        super(InvitationForm, self).__init__(*args, **kwargs)

        # exclusive for InvitationForm
        self.fields['num_invites'].required = True

        self.fields['num_additional_persons_per_invite'].widget = self.fields['num_additional_persons_per_invite'].hidden_widget()
        self.fields['num_additional_persons_per_invite'].widget.attrs['disabled'] = 'disabled'

        # used for functionality "Einladung mit Freikarten"
        self.fields['invitations_start'].widget = AdminSplitDateTime()
        self.fields['invitations_deadline'].widget = AdminSplitDateTime()

        timeframe_values = self.create_timeframe_values()
        del self.fields['timeframe_select']
        insertBefore = self.fields.keyOrder.index('invitations_start')
        self.fields.insert(insertBefore, 'timeframe_select', 
                           InvitationTimeInputField(label="Diese Einladung gilt:", initial=timeframe_values))
Example #16
0
class CreateQuizForm(forms.ModelForm):
    quiz_name = forms.CharField(
        label='Quiz Name',
        widget=forms.TextInput(attrs={'placeholder': 'Quiz Name'}))
    quiz_id = forms.CharField(
        label='Quiz Id',
        widget=forms.TextInput(attrs={'placeholder': 'Quiz id'}))
    active = forms.BooleanField(label='Active', required=False)
    start_time = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    end_time = forms.SplitDateTimeField(widget=AdminSplitDateTime())

    class Meta:
        model = Quiz
        fields = [
            'quiz_name',
            'quiz_id',
            'active',
            'start_time',
            'end_time',
        ]
Example #17
0
 def __init__(self, request, *args, **kwargs):
     field_name = kwargs.pop('field_name')
     super(DateTimeFilterForm, self).__init__(*args, **kwargs)
     self.request = request
     self.fields['%s_as_of' % field_name] = forms.SplitDateTimeField(
         label='',
         input_time_formats=['%I:%M %p', '%H:%M:%S'],
         widget=AdminSplitDateTime(
             attrs={'placeholder': 'as of date and time'}),
         localize=True,
         required=True)
Example #18
0
    def test_localization(self):
        w = AdminSplitDateTime()

        with self.settings(USE_L10N=True):
            with translation.override('de-at'):
                w.is_localized = True
                self.assertEqual(
                    conditional_escape(
                        w.render('test', datetime(2007, 12, 1, 9, 30))),
                    '<p class="datetime">Datum: <input value="01.12.2007" type="text" class="vDateField" name="test_0" size="10" /><br />Zeit: <input value="09:30:00" type="text" class="vTimeField" name="test_1" size="8" /></p>',
                )
Example #19
0
class TaskCreationForm(ModelForm):
    def __init__(self, *args, **kwargs):
        super(TaskCreationForm, self).__init__(*args, **kwargs)
        self.fields['group'].widget.attrs['disabled'] = True

    visible = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    started_at = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    finished_at = forms.SplitDateTimeField(widget=AdminSplitDateTime())

    class Meta:
        model = Task
        fields = [
            'name',
            'description',
            'started_at',
            'finished_at',
            'visible',
            'group',
            'document',
        ]
Example #20
0
 def __init__(self, *args, **kwargs):
     super(NoteForm, self).__init__(*args, **kwargs)
     self.fields['occasion'].widget.attrs['size'] = 100
     self.fields['project'].widget = SelectWithPop(self.user)
     self.fields['project'].queryset = Project.objects.filter(
         author__username__exact=self.user)
     # set the text field size to a reasonable default
     self.fields['entry'].widget.attrs['rows'] = 20
     self.fields['entry'].widget.attrs['cols'] = 50
     #
     self.fields['date'].widget = AdminSplitDateTime()
     self.fields['schedule'].initial = Note.SCHEDULE_PAST
Example #21
0
class AvailibilityForm(forms.ModelForm):

    notAvailableFrom = forms.SplitDateTimeField(label='Not available From',
                                                widget=AdminSplitDateTime())

    notAvailableTill = forms.SplitDateTimeField(label='Not available till',
                                                widget=AdminSplitDateTime())

    opening = forms.SplitDateTimeField(label='Opening',
                                       widget=AdminSplitDateTime())

    closing = forms.SplitDateTimeField(label='Opening',
                                       widget=AdminSplitDateTime())

    class Meta:
        model = Aivailibility
        fields = (
            'opening',
            'closing',
            'notAvailableFrom',
            'notAvailableTill',
        )
Example #22
0
class DREventForm(forms.ModelForm):
    scheduled_notification_time = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    start = forms.SplitDateTimeField(widget=AdminSplitDateTime())
    end = forms.SplitDateTimeField(widget=AdminSplitDateTime())

    class Meta:
        model = DREvent
        fields = '__all__'
        widgets = {'status': forms.HiddenInput(),
                   'modification_number': forms.HiddenInput(),
                   'last_status_time': forms.HiddenInput(),
                   'sites': FilteredSelectMultiple('sites', False,)}

    def __init__(self, *args, **kwargs):
        super(DREventForm, self).__init__(*args, **kwargs)
        self.fields['modification_number'].required = False
        self.fields['status'].required = False
        self.fields['last_status_time'].required = False
        self.fields['event_id'].required = False

    def clean(self):
        if self._errors:
            return self._errors
        cleaned_data = super().clean()
        try:
            scheduled_notification_time = cleaned_data['scheduled_notification_time']
            start = cleaned_data['start']
            end = cleaned_data['end']
        except KeyError:
            raise ValidationError('Please enter valid date and time')
        if start > end:
            raise ValidationError('Start time must precede end time')
        if scheduled_notification_time > start:
            raise ValidationError('Notification time must precede start time')
        if scheduled_notification_time < timezone.now() or \
                start < timezone.now() or  \
                end < timezone.now():
            raise ValidationError('All times must be in the future')
Example #23
0
class BookingProgress(forms.ModelForm):
    bookingFrom  = forms.SplitDateTimeField(
    label ='From',
    input_time_formats=['%I:%M %p', '%H:%M:%S'],
    widget=AdminSplitDateTime())
    bookingUntil= forms.SplitDateTimeField(
    input_time_formats=['%I:%M %p', '%H:%M:%S'],
    widget=AdminSplitDateTime(),
    label ='Until')
    class Meta:
        model = Booking_inprogress
        fields = (
            'bookingFrom',
            'bookingUntil',
            )
    def clean(self,*args,**kwargs):
        bookingFrom = self.cleaned_data.get('bookingFrom')
        bookingUntil = self.cleaned_data.get('bookingUntil')
        if bookingFrom.date()  !=  bookingUntil.date():
            raise forms.ValidationError('Your reservation should have the same date')
        if bookingFrom.time() == bookingUntil.time():
            raise forms.ValidationError('You cannot choose the same time for the begining and the end of the game')
        return super(BookingProgress, self).clean(*args, **kwargs)
Example #24
0
 def __init__(self, future=True, *args, **kwargs):
     dt = forms.SplitDateTimeField(initial=datetime.now())
     comp = forms.ChoiceField(
         choices=COMPARATORS,
         initial=('A' if future else 'B'),
     )
     super(DateTimeQueryField,self).__init__(
         fields=(comp,dt),
         widget=DateTimeQueryWidget((
             comp.widget,
             AdminSplitDateTime(),
         )),
         *args,
         **kwargs
     )
Example #25
0
    def test_localization(self):
        w = AdminSplitDateTime()

        activate('de-at')
        old_USE_L10N = settings.USE_L10N
        try:
            settings.USE_L10N = True
            w.is_localized = True
            self.assertEqual(
                conditional_escape(w.render('test', datetime(2007, 12, 1, 9, 30))),
                '<p class="datetime">Datum: <input value="01.12.2007" type="text" class="vDateField" name="test_0" size="10" /><br />Zeit: <input value="09:30:00" type="text" class="vTimeField" name="test_1" size="8" /></p>',
            )
        finally:
            deactivate()
            settings.USE_L10N = old_USE_L10N
Example #26
0
class FlashNewsViewForm(forms.Form):
    message = forms.CharField(widget=forms.Textarea, required=True, max_length=100)
    send_date = forms.SplitDateTimeField(widget=AdminSplitDateTime())

    class Media:
        css = {
            'all': ('/static/admin/css/widgets.css',)
        }

    def __init__(self, *args, **kwargs):
        super(FlashNewsViewForm, self).__init__(*args, **kwargs)
        servers = Server.objects.all()
        server_list = []
        for sv in servers:
            server_list.append((sv.id, sv.name))
        server_group_choice = tuple(server_list)

        self.fields['server'] = forms.MultipleChoiceField(choices=server_group_choice,
                                                          widget=FilteredSelectMultiple("服务器", is_stacked=False))
        for key in self.fields:
            self.fields[key].required = True
Example #27
0
class RegisterForm(forms.Form):

    username = forms.CharField(min_length=5,
                               max_length=10,
                               error_messages={
                                   'required': "入力必須",
                                   'min_length': "不得少于3个字"
                               })

    password = forms.CharField(widget=forms.PasswordInput)
    birth = forms.DateField(widget=forms.DateInput(
        attrs={'placeholder': 'YYYY-MM-DD'}))
    datetime = forms.SplitDateTimeField(widget=AdminSplitDateTime(),
                                        required=False)
    select1 = forms.ChoiceField(choices=RADIO_CHOICES)
    select2 = forms.MultipleChoiceField(
        choices=RADIO_CHOICES,
        help_text='Check as many as you like.',
    )
    select3 = forms.ChoiceField(choices=MEDIA_CHOICES)
    select4 = forms.MultipleChoiceField(
        choices=MEDIA_CHOICES,
        help_text='Check as many as you like.',
    )
Example #28
0
 def test_render(self):
     w = AdminSplitDateTime()
     self.assertEqual(
         conditional_escape(w.render('test', datetime(2007, 12, 1, 9, 30))),
         '<p class="datetime">Date: <input value="2007-12-01" type="text" class="vDateField" name="test_0" size="10" /><br />Time: <input value="09:30:00" type="text" class="vTimeField" name="test_1" size="8" /></p>',
     )
Example #29
0
class UserReportForm(forms.Form):
    start_date = forms.SplitDateTimeField(label=mark_safe("<br/>Start Date"),
                                          widget=AdminSplitDateTime())
    end_date = forms.SplitDateTimeField(label=mark_safe("<br/>End Date"),
                                        widget=AdminSplitDateTime())
 class TestForm(forms.Form):
     char = forms.CharField(max_length=255)
     hidden = forms.CharField(max_length=255,
                              widget=forms.HiddenInput())
     date = forms.DateField(widget=AdminDateWidget())
     datetime = forms.DateTimeField(widget=AdminSplitDateTime())