Skip to content
Snippets Groups Projects
Select Git revision
  • a676d712611c6263a8507e5bcf105e3df42def33
  • test default protected
  • master protected
  • original
  • pirati-backup protected
  • beta-2
  • beta-1
  • v3.1.4
  • v3.1.3
  • v3.1.2
  • v3.1.1
  • v3.1.0
  • v3.0.16
  • v3.0.15
  • v3.0.14
  • v3.0.13
  • v3.0.12
  • v3.0.11
  • v3.0.10
  • v3.0.9
  • v3.0.8
  • v3.0.7
  • v3.0.6
  • v3.0.5
  • v3.0.4
25 results

fields.py

Blame
  • fields.py 1.04 KiB
    from time import strptime, strftime
    import datetime
    from django import forms
    from django.db import models
    from django.forms import fields
    from widgets import SplitSelectDateTimeWidget
    
    class SplitDateTimeField(fields.MultiValueField):
        widget = SplitSelectDateTimeWidget
    
        def __init__(self, *args, **kwargs):
            """
            Have to pass a list of field types to the constructor, else we
            won't get any data to our compress method.
            """
            all_fields = (fields.DateField(), fields.TimeField())
            super(SplitDateTimeField, self).__init__(all_fields, *args, **kwargs)
    
        def compress(self, data_list):
            """
            Takes the values from the MultiWidget and passes them as a
            list to this function. This function needs to compress the
            list into a single object to save.
            """
            if data_list:
                if not (data_list[0] and data_list[1]):
                    raise forms.ValidationError("Field is missing data.")
                return datetime.datetime.combine(*data_list)
            return None