Example #1
0
class HistoryFilterForm(ModelForm):
    name = CharField(required=False)
    date_from = DateTimeField(required=False)
    date_to = DateTimeField(initial=datetime.date.today, required=False)

    name.widget = TextInput(
        attrs={
            'class': "form-control col-5 mx-sm-3 mb-2",
            'aria-label': "Large",
            'aria-describedby': "inputGroup-sizing-sm",
            'placeholder': 'City...',
            'name': 'city',
        })

    date_from.widget = DateTimeInput(
        attrs={
            'class': "form-control col-5 mx-sm-3 mb-2",
            'name': 'date_from',
            'type': "datetime-local",
            'value': '2000-01-01T01:01'
        })

    date_to.widget = DateTimeInput(
        attrs={
            'class': "form-control col-5 mx-sm-3 mb-2",
            'name': 'date_to',
            'type': "datetime-local",
            # 'value' : lambda: datetime.date.today().__str__().replace(' ', 'T')
        })

    class Meta:
        model = HistoryFilter
        fields = ['name', 'date_from', 'date_to']
Example #2
0
class SeasonForm(ModelForm):
	class Meta:
		model = Season
		exclude = ['season_event', 'external_order_event', 'internal_order_event']
	
	season_event_start_date = DateTimeField(widget=DateInput())
	season_event_end_date = DateTimeField(widget=DateInput())
	internal_order_event_date = DateTimeField(widget=DateInput())
	external_order_event_date = DateTimeField(widget=DateInput())
	
	def __init__(self, *args, **kwargs):
		if "request" in kwargs:
			self.request = kwargs.pop("request")
		super().__init__(*args, **kwargs)
	
	def clean(self):
		cleaned_data = super(SeasonForm, self).clean()
		season_event_start = cleaned_data.get("season_event_start_date")
		season_event_end = cleaned_data.get("season_event_end_date")
		internal_order_event = cleaned_data.get("internal_order_event_date")
		external_order_event = cleaned_data.get("external_order_event_date")
		
		if season_event_start and season_event_end and internal_order_event and external_order_event:
			if (season_event_start <= internal_order_event or season_event_start <= external_order_event):
				raise ValidationError("Order events cannot be before the season event")
			if (season_event_start >= season_event_end):
				raise ValidationError("Season start must be before season end")
Example #3
0
class AddAuction(ModelForm):
    end_time = DateTimeField(initial=now() + timedelta(days=1),
                             required=True,
                             widget=DateTimeInput())
    start_time = DateTimeField(initial=now(),
                               required=True,
                               widget=DateTimeInput())
    image = FileField()
    helper = FormHelper()
    helper.form_method = 'POST'
    helper.layout = Layout(
        'title', 'image', 'description', PrependedText('start_price', '$'),
        PrependedText('buy_it_now_price', '$'), 'start_time', 'end_time',
        'categories',
        FormActions(Submit('List Item', 'List this item for auction')))

    def clean(self):
        cleaned_data = super(AddAuction, self).clean()
        start_time = cleaned_data.get("start_time")
        end_time = cleaned_data.get("end_time")
        if end_time <= start_time:
            raise ValidationError("End time must be later than start time.")

    class Meta:
        model = Auction
        fields = [
            'title', 'image', 'description', 'start_price', 'buy_it_now_price',
            'start_time', 'end_time', 'categories'
        ]
Example #4
0
 def test_datetimefield_clean_input_formats(self):
     tests = [
         ('%Y %m %d %I:%M %p', (
             (date(2006, 10, 25), datetime(2006, 10, 25, 0, 0)),
             (datetime(2006, 10, 25, 14, 30), datetime(2006, 10, 25, 14, 30)),
             (
                 datetime(2006, 10, 25, 14, 30, 59),
                 datetime(2006, 10, 25, 14, 30, 59),
             ),
             (
                 datetime(2006, 10, 25, 14, 30, 59, 200),
                 datetime(2006, 10, 25, 14, 30, 59, 200),
             ),
             ('2006 10 25 2:30 PM', datetime(2006, 10, 25, 14, 30)),
         )),
         ('%Y.%m.%d %H:%M:%S.%f', (
             (
                 '2006.10.25 14:30:45.0002',
                 datetime(2006, 10, 25, 14, 30, 45, 200),
             ),
         )),
     ]
     f = DateTimeField()
     for input_format, values in tests:
         f = DateTimeField(input_formats=[input_format])
         for value, expected_datetime in values:
             with self.subTest(value=value, input_format=input_format):
                 self.assertEqual(f.clean(value), expected_datetime)
Example #5
0
class PunchOut(ModelForm):
    employee_id = forms.IntegerField(required=False)
    punchin = DateTimeField(input_formats=settings.DATETIME_INPUT_FORMATS,
                            required=False)
    punchout = DateTimeField(input_formats=settings.DATETIME_INPUT_FORMATS,
                             required=False)
    workhours = TimeField(required=False)

    def format_timedelta(i, td):
        hours, remainder = divmod(td, 3600)
        minutes, seconds = divmod(remainder, 60)
        hours, minutes, seconds = int(hours), int(minutes), int(seconds)
        if hours < 10:
            hours = '0%s' % int(hours)
        if minutes < 10:
            minutes = '0%s' % minutes
        if seconds < 10:
            seconds = '0%s' % seconds
        return '%s:%s:%s' % (hours, minutes, seconds)

    def __init__(self, *args, **kwargs):
        super(PunchOut, self).__init__(*args, **kwargs)
        [
            self.fields.pop(f) for f in self.fields.keys()
            if f in self.Meta.exclude
        ]
        for field in self:
            field.field.widget.attrs['readonly'] = True

    class Meta:
        model = CheckInUser
        fields = ('employee_id', 'punchin', 'punchout', 'workhours')
        exclude = ('employee_id', )
Example #6
0
class BaseReportForm(ShuupReportForm):
    shop = forms.ChoiceField(label=_("Shop"),
                             help_text=_("Filter report results by shop."))
    date_range = EnumField(DateRangeChoices).formfield(
        form_class=ChoiceField,
        label=_("Date Range"),
        initial=DateRangeChoices.RUNNING_WEEK,
        help_text=_("Filter report results by a date range."))
    start_date = DateTimeField(label=_("Start Date"),
                               required=False,
                               help_text=_("For a custom date range."))
    end_date = DateTimeField(label=_("End Date"),
                             required=False,
                             help_text=_("For a custom date range."))

    def __init__(self, *args, **kwargs):
        super(BaseReportForm, self).__init__(*args, **kwargs)
        self.fields["shop"].choices = [
            (shop.pk, shop.name)
            for shop in Shop.objects.get_for_user(self.request.user)
        ]

    def clean(self):
        data = self.cleaned_data
        if data.get("date_range") == DateRangeChoices.CUSTOM:
            try:
                data["date_range"] = parse_date_range(
                    (data["start_date"], data["end_date"]))
            except Exception as exc:
                self.add_error("__all__", force_text(exc))
        return data
Example #7
0
class ObservationLogForm(forms.Form):
    start_time = DateTimeField(widget=DateTimePicker(
            options={"format": "YYYY-MM-DD HH:mm:ss"}
        ))
    end_time = DateTimeField(widget=DateTimePicker(
            options={"format": "YYYY-MM-DD HH:mm:ss"}
        ))
Example #8
0
class OvertimeApplicationForm(ModelForm):
    date = DateField(label='Date',
                     required=True,
                     widget=DateInput(attrs={
                         'class': 'form-control',
                         'type': 'date'
                     }))

    start_time = DateTimeField(
        label='Start Time',
        required=True,
        widget=DateTimeInput(attrs={'class': 'form-control'}))

    end_time = DateTimeField(
        label='End Time',
        required=True,
        widget=DateTimeInput(attrs={'class': 'form-control'}))

    description = CharField(label='Description',
                            required=True,
                            widget=Textarea(attrs={'class': 'form-control'}))

    class Meta:
        model = OvertimeApplication
        fields = ['start_time', 'end_time', 'description']
Example #9
0
class CourseForm(forms.ModelForm):
    courseCode = forms.CharField(
        label="Course Code",
        max_length=10,
        widget=forms.TextInput(attrs={'placeholder': 'e.g. CS F213'}))
    courseName = forms.CharField(
        label="Course Name",
        max_length=100,
        widget=forms.TextInput(
            attrs={'placeholder': 'e.g. OBJECT ORIENTED PROGRAMMING'}))
    midsemDateTime = DateTimeField(
        input_formats=["%d/%m/%y %H"],
        label="Midsem Date and Time (dd/mm/yy h)",
        widget=forms.TextInput(attrs={'placeholder': 'e.g. 4/10/19 9'}))
    compreDateTime = DateTimeField(
        input_formats=["%d/%m/%y %H"],
        label="Compre Date and Time (dd/mm/yy h)",
        widget=forms.TextInput(attrs={'placeholder': 'e.g. 9/12/19 14'}))

    class Meta:
        model = Course
        fields = "__all__"
        labels = {
            "courseIC": "Course IC",
        }
Example #10
0
class EncomendaForm(forms.ModelForm):

    cliente = ModelChoiceField(
        queryset=Customer.objects.all(),
        widget=forms.Select(attrs={'class': 'form-control'}))

    data_encomenda = DateTimeField(input_formats=["%d/%m/%Y"],
                                   widget=forms.DateTimeInput(
                                       format="%m/%d/%Y",
                                       attrs={
                                           'class':
                                           'form-control datetimepicker-input',
                                           'data-target': '#datetimepicker1'
                                       }))
    data_entrega = DateTimeField(input_formats=["%d/%m/%Y"],
                                 widget=forms.DateTimeInput(
                                     format="%m/%d/%Y",
                                     attrs={
                                         'class':
                                         'form-control datetimepicker-input',
                                         'data-target': '#datetimepicker1'
                                     }))

    class Meta:
        model = Encomenda
        fields = '__all__'
Example #11
0
class TakeAttendance(Form):

    # email = EmailField(readonly = True).attrs['readonly']
    class_name = ModelChoiceField(queryset=Class.objects.all(),
                                  to_field_name="title")
    from_date = DateTimeField(widget=MyDateInput)
    to_date = DateTimeField(widget=MyDateInput)
Example #12
0
 def test_datetimefield_clean_input_formats(self):
     tests = [
         (
             "%Y %m %d %I:%M %p",
             (
                 (date(2006, 10, 25), datetime(2006, 10, 25, 0, 0)),
                 (datetime(2006, 10, 25, 14,
                           30), datetime(2006, 10, 25, 14, 30)),
                 (
                     datetime(2006, 10, 25, 14, 30, 59),
                     datetime(2006, 10, 25, 14, 30, 59),
                 ),
                 (
                     datetime(2006, 10, 25, 14, 30, 59, 200),
                     datetime(2006, 10, 25, 14, 30, 59, 200),
                 ),
                 ("2006 10 25 2:30 PM", datetime(2006, 10, 25, 14, 30)),
                 # ISO-like formats are always accepted.
                 ("2006-10-25 14:30:45", datetime(2006, 10, 25, 14, 30,
                                                  45)),
             ),
         ),
         (
             "%Y.%m.%d %H:%M:%S.%f",
             ((
                 "2006.10.25 14:30:45.0002",
                 datetime(2006, 10, 25, 14, 30, 45, 200),
             ), ),
         ),
     ]
     for input_format, values in tests:
         f = DateTimeField(input_formats=[input_format])
         for value, expected_datetime in values:
             with self.subTest(value=value, input_format=input_format):
                 self.assertEqual(f.clean(value), expected_datetime)
class CaseForm(forms.ModelForm):
    open_ended = forms.BooleanField(widget=forms.CheckboxInput(),
                                    required=False)
    events = forms.CharField(widget=forms.TextInput(attrs={'class': 'hidden'}),
                             required=False,
                             label="")

    start_date = DateTimeField(widget=forms.widgets.DateTimeInput(
        format='%m/%d/%Y'))

    end_date = DateTimeField(
        widget=forms.widgets.DateTimeInput(format='%m/%d/%Y'), required=False)

    #   title_de: case title in english.
    #   This field was auto-generated by django-modeltranslate
    title_de = forms.CharField(widget=forms.TextInput(),
                               label="Title [English] (optional)",
                               required=False)

    #   description_de: case description in english.
    #   This field was auto-generated by django-modeltranslate
    description_de = forms.CharField(widget=forms.Textarea(),
                                     label="Description [English] (optional)",
                                     required=False)

    class Meta:
        model = Case
        fields = [
            'title', 'description', 'start_date', 'end_date', 'category',
            'open_ended', 'draft', 'events', 'title_de', 'description_de'
        ]
Example #14
0
class ScheduleDeliveryForm(forms.ModelForm):
    start_date = DateTimeField(
        input_formats=["%Y/%m/%d %H:%M"],
        widget=forms.DateTimeInput(attrs={'class': 'datetimepicker'}))

    end_date = DateTimeField(
        input_formats=["%Y/%m/%d %H:%M"],
        widget=forms.DateTimeInput(attrs={'class': 'datetimepicker'}))

    name = forms.CharField(disabled=True)

    class Meta:
        model = Schedule
        fields = '__all__'
        exclude = ('is_completed', 'order')
        widgets = {
            'description': forms.Textarea,
            'involved_people': forms.CheckboxSelectMultiple()
        }

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

        involved_people = self.fields['involved_people']
        queryset = Profile.objects.filter(user_type="Inventory")
        involved_people.queryset = queryset
Example #15
0
class ScheduleForm(forms.ModelForm):

    start_date = DateTimeField(
        input_formats=["%Y/%m/%d %H:%M"],
        widget=forms.DateTimeInput(attrs={'class': 'datetimepicker'}))

    end_date = DateTimeField(
        input_formats=["%Y/%m/%d %H:%M"],
        widget=forms.DateTimeInput(attrs={'class': 'datetimepicker'}))

    class Meta:
        model = Schedule
        fields = [
            'name', 'description', 'order', 'involved_people', 'start_date',
            'end_date'
        ]
        widgets = {
            'description': forms.Textarea,
            'involved_people': forms.CheckboxSelectMultiple()
        }

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

        involved_people = self.fields['involved_people']
        queryset = Profile.objects.order_by('user_type')
        involved_people.queryset = queryset
Example #16
0
class ReservationForm(ModelForm):
    start = DateTimeField()
    end = DateTimeField()

    class Meta:
        model = Reservation
        fields = ("title", "room", "start", "end", "is_public", )

    def clean_start(self):
        start = self.cleaned_data['start']
        room = self.cleaned_data.get("room")

        if not room:
            return

        reservation = Reservation.objects.filter(
            room=room, status="a", start__lte=start, end__gte=start).first()
        if reservation and self.instance != reservation:
            raise ValidationError(
                _("The start date overlaps with an already approved "
                  "reservation."))

        return start

    def clean_end(self):
        end = self.cleaned_data['end']
        room = self.cleaned_data.get("room")

        if not room:
            return

        reservation = Reservation.objects.filter(
            room=room, status="a", start__lte=end, end__gte=end).first()
        if reservation and self.instance != reservation:
            raise ValidationError(
                _("The end date overlaps with an already approved "
                  "reservation."))

        return end

    def clean(self):
        data = super().clean()
        start = data.get("start")
        end = data.get("end")
        room = data.get("room")

        if not (start and end and room):
            return data

        if end < start:
            raise ValidationError(
                _("End date must be later than start date."))

        rsv = Reservation.objects.filter(
            room=room, status="a", start__lte=start, end__gte=end).first()
        if rsv and rsv != self.instance:
            raise ValidationError(_("The given dates overlap with the "
                                    "timeline of another reservation for "
                                    "this room."))
Example #17
0
class FilterForm(Form):
    city = CharField(max_length=255,
                     required=True,
                     widget=TextInput(attrs={'class': 'city-input'}))
    date_from = DateTimeField(
        required=False, widget=TextInput(attrs={'placeholder': '2020-07-23'}))
    date_to = DateTimeField(
        required=False,
        widget=TextInput(attrs={'placeholder': 'Year-Month-Day'}))
Example #18
0
    def __init__(self, *args, **kwargs):
        """Custom model form constructor to account for custom related objects,
        i.e. instances of (subclasses of) `ViewFilterField`. """
        super(ViewForm, self).__init__(*args, **kwargs)

        # Initialize form field for related `ReportType` object
        self.fields["report_type"] = ChoiceField(label="Report Type",
                                                 choices=choices.REPORT_TYPE,
                                                 required=True)

        # Initialize form fields for related `DateRange` object, assigning
        # custom date picker widgets
        self.fields["dr_type"] = TypedChoiceField(
            label="Report Date Range",
            choices=choices.DATE_RANGE_TYPE,
            coerce=int,
            widget=RadioSelect())
        self.fields["quantity"] = IntegerField(label="",
                                               min_value=1,
                                               required=False)
        self.fields["unit"] = TypedChoiceField(label="",
                                               coerce=int,
                                               choices=choices.TIME_UNIT,
                                               required=False)
        self.fields["begin"] = DateTimeField(label="",
                                             required=False,
                                             widget=DatePickerWidget())
        self.fields["end"] = DateTimeField(label="",
                                           required=False,
                                           widget=DatePickerWidget())

        # Set default form value for `DateRange`'s date range type field
        self.fields["dr_type"].initial = choices.DATE_RANGE_TYPE_FIXED

        # Fill form with existing `ViewFilterField` data if any. Unbound forms,
        # i.e. forms without data, don't have an instance id.
        if self.instance.id:
            # Note, there can at most be one `DateRange` and one `ReportType`
            # object on a view. See `models.ViewFilterField`'s docstring for
            # more info.
            for date_range in DateRange.objects.filter(
                    foreign_key=self.instance.id):
                self.fields["dr_type"].initial = date_range.dr_type

                self.fields["unit"].initial = date_range.unit
                self.fields["quantity"].initial = date_range.quantity

                if date_range.begin:
                    self.fields["begin"].initial = date_range.begin.strftime(
                        "%Y-%m-%d")
                if date_range.end:
                    self.fields["end"].initial = date_range.end.strftime(
                        "%Y-%m-%d")

            for report_type in ReportType.objects.filter(
                    foreign_key=self.instance.id):
                self.fields["report_type"].initial = report_type.value
Example #19
0
 def test_datetimefield_clean(self):
     tests = [
         (date(2006, 10, 25), datetime(2006, 10, 25, 0, 0)),
         (datetime(2006, 10, 25, 14, 30), datetime(2006, 10, 25, 14, 30)),
         (datetime(2006, 10, 25, 14, 30, 59), datetime(2006, 10, 25, 14, 30, 59)),
         (
             datetime(2006, 10, 25, 14, 30, 59, 200),
             datetime(2006, 10, 25, 14, 30, 59, 200),
         ),
         ('2006-10-25 14:30:45.000200', datetime(2006, 10, 25, 14, 30, 45, 200)),
         ('2006-10-25 14:30:45.0002', datetime(2006, 10, 25, 14, 30, 45, 200)),
         ('2006-10-25 14:30:45', datetime(2006, 10, 25, 14, 30, 45)),
         ('2006-10-25 14:30:00', datetime(2006, 10, 25, 14, 30)),
         ('2006-10-25 14:30', datetime(2006, 10, 25, 14, 30)),
         ('2006-10-25', datetime(2006, 10, 25, 0, 0)),
         ('10/25/2006 14:30:45.000200', datetime(2006, 10, 25, 14, 30, 45, 200)),
         ('10/25/2006 14:30:45', datetime(2006, 10, 25, 14, 30, 45)),
         ('10/25/2006 14:30:00', datetime(2006, 10, 25, 14, 30)),
         ('10/25/2006 14:30', datetime(2006, 10, 25, 14, 30)),
         ('10/25/2006', datetime(2006, 10, 25, 0, 0)),
         ('10/25/06 14:30:45.000200', datetime(2006, 10, 25, 14, 30, 45, 200)),
         ('10/25/06 14:30:45', datetime(2006, 10, 25, 14, 30, 45)),
         ('10/25/06 14:30:00', datetime(2006, 10, 25, 14, 30)),
         ('10/25/06 14:30', datetime(2006, 10, 25, 14, 30)),
         ('10/25/06', datetime(2006, 10, 25, 0, 0)),
         # ISO 8601 formats.
         (
             '2014-09-23T22:34:41.614804',
             datetime(2014, 9, 23, 22, 34, 41, 614804),
         ),
         ('2014-09-23T22:34:41', datetime(2014, 9, 23, 22, 34, 41)),
         ('2014-09-23T22:34', datetime(2014, 9, 23, 22, 34)),
         ('2014-09-23', datetime(2014, 9, 23, 0, 0)),
         ('2014-09-23T22:34Z', datetime(2014, 9, 23, 22, 34, tzinfo=utc)),
         (
             '2014-09-23T22:34+07:00',
             datetime(2014, 9, 23, 22, 34, tzinfo=get_fixed_timezone(420)),
         ),
         # Whitespace stripping.
         (' 2006-10-25   14:30:45 ', datetime(2006, 10, 25, 14, 30, 45)),
         (' 2006-10-25 ', datetime(2006, 10, 25, 0, 0)),
         (' 10/25/2006 14:30:45 ', datetime(2006, 10, 25, 14, 30, 45)),
         (' 10/25/2006 14:30 ', datetime(2006, 10, 25, 14, 30)),
         (' 10/25/2006 ', datetime(2006, 10, 25, 0, 0)),
         (' 10/25/06 14:30:45 ', datetime(2006, 10, 25, 14, 30, 45)),
         (' 10/25/06 ', datetime(2006, 10, 25, 0, 0)),
         (
             ' 2014-09-23T22:34:41.614804 ',
             datetime(2014, 9, 23, 22, 34, 41, 614804),
         ),
         (' 2014-09-23T22:34Z ', datetime(2014, 9, 23, 22, 34, tzinfo=utc)),
     ]
     f = DateTimeField()
     for value, expected_datetime in tests:
         with self.subTest(value=value):
             self.assertEqual(f.clean(value), expected_datetime)
Example #20
0
class CreateEventForm(forms.ModelForm):
    start_time = DateTimeField(label="Start time",
                               help_text="e.g. 2018-9-21 15:30")
    end_time = DateTimeField(label="End time",
                             help_text="e.g. 2018-9-21 17:00")

    class Meta:
        model = Event
        fields = ('title', 'description', 'start_time', 'end_time',
                  'public_flag')
Example #21
0
class BulkDateForm(Form):
    """Form for changing the start and end dates of many snippets at once"""

    start_date = DateTimeField(label='Start Date',
                               widget=DateInput(attrs={'class': 'datetime'}),
                               required=False)
    end_date = DateTimeField(label='End Date',
                             widget=DateInput(attrs={'class': 'datetime'}),
                             required=False)
    ids = CharField(required=True, widget=widgets.HiddenInput())
Example #22
0
class BaseReportForm(forms.Form):
    report = forms.CharField(widget=HiddenInput)
    shop = forms.ChoiceField(label=_("Shop"),
                             help_text=_("Filter report results by shop."))
    date_range = EnumField(DateRangeChoices).formfield(
        form_class=ChoiceField,
        label=_("Date Range"),
        initial=DateRangeChoices.RUNNING_WEEK,
        help_text=_("Filter report results by a date range."))
    start_date = DateTimeField(label=_("Start Date"),
                               required=False,
                               help_text=_("For a custom date range."))
    end_date = DateTimeField(label=_("End Date"),
                             required=False,
                             help_text=_("For a custom date range."))
    writer = forms.ChoiceField(
        label=_("Output Format"),
        initial="html",
        choices=[(name, name.title()) for name in sorted(get_writer_names())],
        help_text=_("The format to show the report results."))
    force_download = forms.BooleanField(
        required=False,
        label=_("Download"),
        help_text=_("Check this to download the report."))

    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop('request')
        super(BaseReportForm, self).__init__(*args, **kwargs)
        self.fields["shop"].choices = [
            (shop.pk, shop.name)
            for shop in Shop.objects.get_for_user(self.request.user)
        ]

    def clean(self):
        data = self.cleaned_data
        if data.get("date_range") == DateRangeChoices.CUSTOM:
            try:
                data["date_range"] = parse_date_range(
                    (data["start_date"], data["end_date"]))
            except Exception as exc:
                self.add_error("__all__", force_text(exc))
        return data

    def get_report_instance(self):
        """
        :rtype: shuup.reports.reporter.base.ShuupReportBase
        """
        from shuup.reports.report import get_report_class

        data = self.cleaned_data
        writer_name = data.pop("writer")

        report_class = get_report_class(data["report"])
        report = report_class(writer_name=writer_name, **data)
        return report
Example #23
0
class EventForm(NewsForm):
    date = DateTimeField(input_formats=('%d.%m.%Y %H:%M', ),
                         widget=DateTimeInput(format="%d.%m.%Y %H:%M"))
    deadline = DateTimeField(input_formats=('%d.%m.%Y %H:%M', ),
                             widget=DateTimeInput(format="%d.%m.%Y %H:%M"))

    class Meta:
        exclude = ('member', 'madeByAdmin')
        model = Event
        widgets = {
            'description': SummernoteWidget(attrs={'width': '100%'}),
        }
Example #24
0
 class CourseAPIPostForm(Form):
     name = CharField(max_length=200)
     info = CharField(required=False)
     start_date = DateTimeField()
     end_date = DateTimeField()
     price = DecimalField(max_digits=10,
                          decimal_places=2,
                          validators=[MinValueValidator(0)])
     quota = IntegerField(validators=[MinValueValidator(0)])
     sold = IntegerField(validators=[MinValueValidator(0)],
                         required=False)
     picture = FileField(required=False)
Example #25
0
 def test_datetimefield_4(self):
     f = DateTimeField()
     # Test whitespace stripping behavior (#5714)
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45), f.clean(' 2006-10-25   14:30:45 '))
     self.assertEqual(datetime.datetime(2006, 10, 25, 0, 0), f.clean(' 2006-10-25 '))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45), f.clean(' 10/25/2006 14:30:45 '))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean(' 10/25/2006 14:30 '))
     self.assertEqual(datetime.datetime(2006, 10, 25, 0, 0), f.clean(' 10/25/2006 '))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45), f.clean(' 10/25/06 14:30:45 '))
     self.assertEqual(datetime.datetime(2006, 10, 25, 0, 0), f.clean(' 10/25/06 '))
     with self.assertRaisesMessage(ValidationError, "'Enter a valid date/time.'"):
         f.clean('   ')
Example #26
0
class EventForm(ModelForm):
    end_date = DateTimeField(
        input_formats=['%Y-%m-%d %H:%M'],
        widget=DateTimePickerInput(format='%Y-%m-%d %H:%M'))
    beginning_date = DateTimeField(
        input_formats=['%Y-%m-%d %H:%M'],
        widget=DateTimePickerInput(format='%Y-%m-%d %H:%M'),
    )

    class Meta:
        model = Event
        fields = ('id', 'name', 'category', 'address', 'place',
                  'beginning_date', 'end_date', 'image')
Example #27
0
    def parse_date_time(self, input):
        field = DateTimeField()
        try:
            return field.to_python(input)
        except ValidationError:
            pass

        match = self.duration_re.match(input)
        if match:
            kwargs = dict((k, int(v)) for (k, v) in match.groupdict().items() if v is not None)
            return timezone.now() - timedelta(**kwargs)

        raise ValueError("%s could not be interpereted as a datetime" % input)
Example #28
0
class EventoForm(ModelForm):
    startdate = DateTimeField(widget=BootstrapDateTimePickerInput(format='%d/%m/%Y %H:%M'),
                            input_formats=('%d/%m/%Y %H:%M',))
    enddate = DateTimeField(widget=BootstrapDateTimePickerInput(format='%d/%m/%Y %H:%M'), input_formats=('%d/%m/%Y %H:%M',))

    class Meta:
        model = Evento
        fields = ['nome', 'descricao', 'startdate', 'enddate', 'local']
        widgets = {
            'nome': TextInput(attrs={'class': 'form-control'},),
            'descricao': Textarea(attrs={'class': 'form-control'}),
            'local': TextInput(attrs={'class': 'form-control'}),
        }
Example #29
0
class Form_RegistroTipoUsuario(forms.ModelForm):
    #fechaCreacionTipoUsuario = forms.DateTimeField(widget=Form_DateInput)
    #fechaCreacionTipoUsuario = DateTimeField(input_formats=["%Y-%m-%d %H:%M:%S"])
    #fechaCreacionTipoUsuario = forms.DateField(input_formats=settings.DATE_INPUT_FORMATS)
    fechaCreacionTipoUsuario = DateTimeField(
        widget=forms.HiddenInput(), input_formats=["%Y-%m-%d %H:%M:%S"])
    estadoTipoUsuario = forms.BooleanField(widget=forms.HiddenInput(),
                                           initial=True)

    class Meta:
        model = TipoUsuario
        fields = '__all__'
        exclude = ('fechaCreacionTipoUsuario', 'estadoTipoUsuario')
        labels = {
            'idTipoUsuario': 'Identificador del Reservacion',
            'nombreTipoUsuario': 'Nombre',
            'fechaCreacionTipoUsuario': 'Descripción',
            'estadoTipoUsuario': 'Es Activo',
        }
        widgets = {
            'nombreTipoUsuario':
            forms.TextInput(
                attrs={
                    'class': 'form-control',
                    'placeholder': 'Ingrese el titulo del Tipo de usuario'
                }),
        }
Example #30
0
class SearchFormTest(Form):
    # TODO: Create a field for ModelChoiceField
    STATUS_CHOICES = [
        ('', 'All'),
        (True, 'Active'),
        (False, 'Inactive')
    ]

    field1 = CharField()
    field2 = TextInput()
    field3 = ChoiceField(choices=STATUS_CHOICES)
    field4 = BooleanField()
    field5 = DateField()
    field6 = DateTimeField()
    field7 = FloatField()
    field8 = DecimalField()
    field9 = IntegerField()

    field90 = CharField()
    field91 = CharField()

    def __init__(self, *args, **kwargs):
        super(SearchFormTest, self).__init__(*args, **kwargs)
        self.fields['field90'].label = "Date Start"
        self.fields['field91'].label = "Date End"
Example #31
0
class Form_RegistroEditorial(forms.ModelForm):
    class Meta:
        model = Editorial
        fields = '__all__'
        exclude = ('fechaCreacionEditorial', 'estadoEditorial')
        labels = {
            'idAutorEditorial': 'Identificador del Editorial',
            'tituloAutorEditorial': 'Nombre',
            'descripcionEditorial': 'Descripción',
            'fechaCreacionEditorial': 'Fecha de creación',
            'estadoAutorEditorial': 'Es Activo',
        }
        widgets = {
            'tituloEditorial':
            forms.TextInput(
                attrs={
                    'class': 'form-control',
                    'placeholder': 'Ingrese el titulo de la Editorial'
                }),
            'descripcionEditorial':
            forms.Textarea(
                attrs={
                    'class': 'form-control',
                    'placeholder': 'Ingrese la descripción de la Editorial'
                }),
        }

    fechaCreacionEditorial = DateTimeField(widget=forms.HiddenInput(),
                                           input_formats=["%Y-%m-%d %H:%M:%S"])
    estadoEditorial = forms.BooleanField(widget=forms.HiddenInput(),
                                         initial=True)
Example #32
0
 def test_datetimefield_2(self):
     f = DateTimeField(input_formats=['%Y %m %d %I:%M %p'])
     self.assertEqual(datetime.datetime(2006, 10, 25, 0, 0), f.clean(datetime.date(2006, 10, 25)))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean(datetime.datetime(2006, 10, 25, 14, 30)))
     self.assertEqual(
         datetime.datetime(2006, 10, 25, 14, 30, 59),
         f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59))
     )
     self.assertEqual(
         datetime.datetime(2006, 10, 25, 14, 30, 59, 200),
         f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59, 200))
     )
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean('2006 10 25 2:30 PM'))
     with self.assertRaisesMessage(ValidationError, "'Enter a valid date/time.'"):
         f.clean('2006-10-25 14:30:45')
 def _prepare_date(self, field, value):
     if not (field.auto_now or field.auto_now_add):
         formfield = DateTimeField(required=not field.null)
         return formfield.clean(value)
Example #34
0
 def test_datetimefield_3(self):
     f = DateTimeField(required=False)
     self.assertIsNone(f.clean(None))
     self.assertEqual('None', repr(f.clean(None)))
     self.assertIsNone(f.clean(''))
     self.assertEqual('None', repr(f.clean('')))
Example #35
0
 def test_datetimefield_5(self):
     f = DateTimeField(input_formats=['%Y.%m.%d %H:%M:%S.%f'])
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45, 200), f.clean('2006.10.25 14:30:45.0002'))
Example #36
0
 def test_datetimefield_1(self):
     f = DateTimeField()
     self.assertEqual(datetime.datetime(2006, 10, 25, 0, 0), f.clean(datetime.date(2006, 10, 25)))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean(datetime.datetime(2006, 10, 25, 14, 30)))
     self.assertEqual(
         datetime.datetime(2006, 10, 25, 14, 30, 59),
         f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59))
     )
     self.assertEqual(
         datetime.datetime(2006, 10, 25, 14, 30, 59, 200),
         f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59, 200))
     )
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45, 200), f.clean('2006-10-25 14:30:45.000200'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45, 200), f.clean('2006-10-25 14:30:45.0002'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45), f.clean('2006-10-25 14:30:45'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean('2006-10-25 14:30:00'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean('2006-10-25 14:30'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 0, 0), f.clean('2006-10-25'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45, 200), f.clean('10/25/2006 14:30:45.000200'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45), f.clean('10/25/2006 14:30:45'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean('10/25/2006 14:30:00'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean('10/25/2006 14:30'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 0, 0), f.clean('10/25/2006'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45, 200), f.clean('10/25/06 14:30:45.000200'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45), f.clean('10/25/06 14:30:45'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean('10/25/06 14:30:00'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30), f.clean('10/25/06 14:30'))
     self.assertEqual(datetime.datetime(2006, 10, 25, 0, 0), f.clean('10/25/06'))
     with self.assertRaisesMessage(ValidationError, "'Enter a valid date/time.'"):
         f.clean('hello')
     with self.assertRaisesMessage(ValidationError, "'Enter a valid date/time.'"):
         f.clean('2006-10-25 4:30 p.m.')
Example #37
0
 def test_datetimefield_changed(self):
     format = '%Y %m %d %I:%M %p'
     f = DateTimeField(input_formats=[format])
     d = datetime.datetime(2006, 9, 17, 14, 30, 0)
     self.assertFalse(f.has_changed(d, '2006 09 17 2:30 PM'))