Beispiel #1
0
class CreatePage(forms.ModelForm):
    header_link_texts = SplitArrayField(forms.CharField(required=False),
                                        size=3,
                                        remove_trailing_nulls=False,
                                        required=False)

    body_iv_images = SplitArrayField(forms.FileField(required=False),
                                     size=10,
                                     remove_trailing_nulls=False,
                                     required=False)

    class Meta:
        model = models.Page
        fields = [
            'header_title',
            'header_logo',
            'header_link_texts',
            # 'header_link_urls',
            # 'body_heading',
            # 'body_pr_image',
            # 'body_bg_image',
            'body_buy_button',
            'body_bb_code',
            'body_bb_image',
            'body_bb_link',
            'body_above_bb',
            'body_below_bb',
            # 'body_iv_types',
            'body_iv_images',
            # 'body_iv_videos',
            # 'body_iv_textfields',
            # 'testimonial_heading',
            # 'testimonial_slider',
            # 'testimonial_ivs',
            # 'video_urls',
            # 'footer_address',
            # 'footer_link_text_0',
            # 'footer_link_text_1',
            # 'footer_link_text_2',
            # 'footer_link_url_0',
            # 'footer_link_url_1',
            # 'footer_link_url_2',
            # 'footer_color_select',
            # 'footer_font_size',
            # 'footer_tracking_code',
            # 'footer_facebook_title',
            # 'footer_facebook_image',
            # 'footer_facebook_description',
            # 'shop',
            # 'submit_type'
        ]

        widgets = {
            # 'header_link_texts': SplitArrayWidget(forms.TextInput(), size=3),
            # 'body_iv_images': SplitArrayWidget(forms.ClearableFileInput(), size=3),
            # 'header_link_urls': SplitArrayWidget(forms.URLInput(), size=3),
            # 'body_iv_types': SplitArrayWidget(forms.TextInput(), size=10),
            # 'body_iv_videos': SplitArrayWidget(forms.URLInput(), size=10),
            # 'body_iv_textfields': SplitArrayWidget(forms.TextInput(), size=10),
        }
Beispiel #2
0
class HotelForm(forms.ModelForm):
    """ This is another way for defining a Form based on a Model """
    # class Meta:
    #     model = Hotel
    #     fields = ['name', 'city', 'stars', 'rooms', 'floors',
    #               'elevators', 'address', 'phone_list',
    #               'email_list', 'extra_notes']

    name = forms.CharField(max_length=50, strip=True)
    city = forms.CharField(max_length=50, strip=True)
    stars = forms.IntegerField()
    rooms = forms.IntegerField()
    floors = forms.IntegerField()
    elevators = forms.IntegerField()
    address = forms.CharField(max_length=200, strip=True)
    phone_list = SplitArrayField(forms.CharField(max_length=20, strip=True),
                                 size=5,
                                 remove_trailing_nulls=True)
    email_list = SplitArrayField(forms.EmailField(max_length=100),
                                 size=5,
                                 remove_trailing_nulls=True)

    extra_notes = SplitArrayField(forms.CharField(max_length=100, strip=True),
                                  size=5,
                                  remove_trailing_nulls=True)
Beispiel #3
0
 def test_invalid_char_length(self):
     field = SplitArrayField(forms.CharField(max_length=2), size=3)
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean(['abc', 'c', 'defg'])
     self.assertEqual(cm.exception.messages, [
         'Item 0 in the array did not validate: Ensure this value has at most 2 characters (it has 3).',
         'Item 2 in the array did not validate: Ensure this value has at most 2 characters (it has 4).',
     ])
Beispiel #4
0
 def test_invalid_char_length(self):
     field = SplitArrayField(forms.CharField(max_length=2), size=3)
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean(['abc', 'c', 'defg'])
     self.assertEqual(cm.exception.messages, [
         'Item 0 in the array did not validate: Ensure this value has at most 2 characters (it has 3).',
         'Item 2 in the array did not validate: Ensure this value has at most 2 characters (it has 4).',
     ])
Beispiel #5
0
class RestaurantForm(forms.ModelForm):
    name = forms.CharField(max_length=50, strip=True)
    city = forms.CharField(max_length=50, strip=True)
    address = forms.CharField(max_length=200, strip=True)
    phone_list = SplitArrayField(forms.CharField(max_length=20, strip=True),
                                 size=5, remove_trailing_nulls=True)
    email_list = SplitArrayField(forms.EmailField(max_length=100),
                                 size=5, remove_trailing_nulls=True)

    extra_notes = SplitArrayField(forms.CharField(max_length=100, strip=True),
                                  size=5, remove_trailing_nulls=True)
Beispiel #6
0
class PersonForm(forms.ModelForm):
    firstname = forms.CharField(max_length=20, strip=True)
    lastname = forms.CharField(max_length=20, strip=True)
    nickname = forms.CharField(max_length=20, strip=True,
                               help_text="English name for Korean guides")
    phone_list = SplitArrayField(forms.CharField(max_length=20, strip=True),
                                 size=5, remove_trailing_nulls=True)
    email_list = SplitArrayField(forms.EmailField(max_length=100),
                                 size=5, remove_trailing_nulls=True)
    job_position = forms.ModelChoiceField(queryset=JobPosition.objects.all(),
                                          empty_label=None)
    extra_notes = SplitArrayField(forms.CharField(max_length=100, strip=True),
                                  size=5, remove_trailing_nulls=True)
Beispiel #7
0
 def test_invalid_char_length(self):
     field = SplitArrayField(forms.CharField(max_length=2), size=3)
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean(["abc", "c", "defg"])
     self.assertEqual(
         cm.exception.messages,
         [
             "Item 1 in the array did not validate: Ensure this value has at most 2 "
             "characters (it has 3).",
             "Item 3 in the array did not validate: Ensure this value has at most 2 "
             "characters (it has 4).",
         ],
     )
Beispiel #8
0
class TaskStackForm(forms.ModelForm):
    tasks = SplitArrayField(forms.CharField(),
                            size=10,
                            remove_trailing_nulls=True)

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
Beispiel #9
0
 def test_invalid_integer(self):
     msg = (
         "Item 2 in the array did not validate: Ensure this value is less than or "
         "equal to 100."
     )
     with self.assertRaisesMessage(exceptions.ValidationError, msg):
         SplitArrayField(forms.IntegerField(max_value=100), size=2).clean([0, 101])
Beispiel #10
0
 class SplitForm(forms.Form):
     array = SplitArrayField(
         forms.CharField(required=False),
         size=2,
         remove_trailing_nulls=True,
         required=False,
     )
Beispiel #11
0
        class Form(forms.ModelForm):
            field = SplitArrayField(
                forms.IntegerField(), required=False, size=2, remove_trailing_nulls=True
            )

            class Meta:
                model = IntegerArrayModel
                fields = ("field",)
Beispiel #12
0
class QuestionPageForm(forms.ModelForm):
    answers = SplitArrayField(
        forms.CharField(max_length=1024, required=False),
        10,  # number of CharField displayed
        remove_trailing_nulls=True)
    answers_before = SplitArrayField(
        forms.CharField(max_length=1024, required=False),
        10,  # number of CharField displayed
        remove_trailing_nulls=True)
    answers_expired = SplitArrayField(
        forms.CharField(max_length=1024, required=False),
        10,  # number of CharField displayed
        remove_trailing_nulls=True)

    class Meta:
        model = QuestionPage
        fields = "__all__"
Beispiel #13
0
        class Form(forms.ModelForm):
            field = SplitArrayField(forms.IntegerField(),
                                    required=False,
                                    size=2)

            class Meta:
                model = IntegerArrayModel
                fields = ('field', )
Beispiel #14
0
class RestaurantMenuForm(forms.ModelForm):
    name = forms.CharField(max_length=50, strip=True)
    is_bread_included = forms.BooleanField()
    is_tip_included = forms.BooleanField()
    appetizer_list = SplitArrayField(forms.CharField(max_length=50, strip=True),
                                     size=5, remove_trailing_nulls=True)
    soup_list = SplitArrayField(forms.CharField(max_length=50, strip=True),
                                size=5, remove_trailing_nulls=True)
    salad_list = SplitArrayField(forms.CharField(max_length=50, strip=True),
                                 size=5, remove_trailing_nulls=True)
    main_dish_list = SplitArrayField(forms.CharField(max_length=50, strip=True),
                                     size=5, remove_trailing_nulls=True)
    dessert_list = SplitArrayField(forms.CharField(max_length=50, strip=True),
                                   size=5, remove_trailing_nulls=True)
    drink_list = SplitArrayField(forms.CharField(max_length=50, strip=True),
                                 size=5, remove_trailing_nulls=True)
    cost_per_person = forms.DecimalField(min_value=0.0,
                                         max_value=10000.0,
                                         max_digits=5,
                                         decimal_places=1)
    restaurant = forms.ModelChoiceField(queryset=Restaurant.objects.all(),
                                        empty_label="(Choose Restaurant)")

    extra_notes = SplitArrayField(forms.CharField(max_length=100, strip=True),
                                  size=5, remove_trailing_nulls=True)
Beispiel #15
0
class HotelReservationForm(forms.ModelForm):
    group = forms.ModelChoiceField(queryset=GroupDetail.objects.all(),
                                   empty_label="(Choose Group)")
    hotel = forms.ModelChoiceField(queryset=Hotel.objects.all(),
                                   empty_label='(Choose Hotel)')
    confirmation_date = forms.DateField()

    extra_notes = SplitArrayField(forms.CharField(max_length=100, strip=True),
                                  size=5,
                                  remove_trailing_nulls=True)
Beispiel #16
0
class HotelDepositForm(forms.ModelForm):
    deposit_date = forms.DateField()
    amount = forms.DecimalField(max_digits=5, decimal_places=1)
    hotel_reservation = forms.ModelChoiceField(
        HotelReservation.objects.all(),
        empty_label='(Choose Reservation)',
        limit_choices_to=20)

    extra_notes = SplitArrayField(forms.CharField(max_length=100, strip=True),
                                  size=5,
                                  remove_trailing_nulls=True)
Beispiel #17
0
class PollForm(forms.ModelForm):
    choices = SplitArrayField(forms.CharField(required=False, max_length=254),
                              8,
                              remove_trailing_nulls=True)

    class Meta:
        model = Poll
        fields = '__all__'

    class Media:
        css = {'screen': ("admin/poll.css", )}
Beispiel #18
0
class CompanyDetailsForm(OrganizationDetailForm):
    sectors = SplitArrayField(forms.TypedChoiceField(
        choices=((None, '-----'), ) + CompanySector.CHOICES,
        required=False,
        empty_value=None,
        coerce=int),
                              size=len(CompanySector.CHOICES),
                              remove_trailing_nulls=True)

    class Meta:
        model = CompanyDetails
        fields = '__all__'
Beispiel #19
0
class UpdateAlternateEmailForm(UpdateFormBase):
    SplitArrayField(EmailField(required=True),
                    size=float("inf"),
                    remove_trailing_nulls=False)

    class Meta:
        model = User
        fields = ['alternate_email']

    def __init__(self, *args, **kwargs):
        super(UpdateAlternateEmailForm, self).__init__(*args, **kwargs)
        self.helper = helper.FormHelper(self)
        self.helper.form_show_labels = False
        self.helper.form_tag = False
        self.helper.layout = layout.Layout(layout.Div())
Beispiel #20
0
class RestaurantReservationForm(forms.ModelForm):
    group = forms.ModelChoiceField(queryset=GroupDetail.objects.all(),
                                   empty_label="(Choose Group)")
    restaurant_menu = forms.ModelChoiceField(queryset=RestaurantMenu.objects.all(),
                                             empty_label="(Choose Menu)")

    reservation_date_time = forms.DateTimeField()
    total_pax = forms.IntegerField(min_value=0, max_value=100)
    free_pax = forms.IntegerField(min_value=0, max_value=100)
    # is_confirmed = models.BooleanField(default=False)
    extra_cost = forms.DecimalField(min_value=0.0,
                                    max_value=10000.0,
                                    max_digits=5,
                                    decimal_places=1)

    extra_notes = SplitArrayField(forms.CharField(max_length=100, strip=True),
                                  size=5, remove_trailing_nulls=True)
from django.db import models
from django_postgres_extensions.models.fields import HStoreField, JSONField, ArrayField
from django_postgres_extensions.models.fields.related import ArrayManyToManyField
from django import forms
from django.contrib.postgres.forms import SplitArrayField
from django_postgres_extensions.forms.fields import NestedFormField

details_fields = (
    ('Brand', NestedFormField(keys=('Name', 'Country'))),
     ('Type', forms.CharField(max_length=25, required=False)),
     ('Colours', SplitArrayField(base_field=forms.CharField(max_length=10, required=False), size=10)),
)

class Buyer(models.Model):
    time = models.DateTimeField(auto_now_add=True)
    name = models.CharField(max_length=20)

    def __str__(self):
        return self.name

class Product(models.Model):
    name = models.CharField(max_length=15)
    keywords = ArrayField(models.CharField(max_length=20), default=[], form_size=10, blank=True)
    sports = ArrayField(models.CharField(max_length=20),default=[], blank=True, choices=(
    ('football', 'Football'), ('tennis', 'Tennis'), ('golf', 'Golf'), ('basketball', 'Basketball'), ('hurling', 'Hurling'), ('baseball', 'Baseball')))
    shipping = HStoreField(keys=('Address', 'City', 'Region', 'Country'), blank=True, default={})
    details = JSONField(fields=details_fields, blank=True, default={})
    buyers =  ArrayManyToManyField(Buyer)

    def __str__(self):
        return self.name
Beispiel #22
0
 class SplitForm(forms.Form):
     array = SplitArrayField(forms.CharField(), size=3)
class TransientServerForm(forms.ModelForm):
    """
    Save an individual :model:`shepherd.TransientServer` associated with an individual
    :model:`rolodex.Project`.
    """

    aux_address = SplitArrayField(forms.GenericIPAddressField(),
                                  size=3,
                                  remove_trailing_nulls=True)

    class Meta:

        model = TransientServer
        fields = "__all__"
        widgets = {
            "project": forms.HiddenInput(),
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        for field in self.fields:
            self.fields[field].widget.attrs["autocomplete"] = "off"
        self.fields["ip_address"].widget.attrs["placeholder"] = "IP Address"
        self.fields["name"].widget.attrs["placeholder"] = "Hostname"
        self.fields["activity_type"].empty_label = "-- Select Activity --"
        self.fields["server_role"].empty_label = "-- Select Role --"
        self.fields["server_provider"].empty_label = "-- Select Provider --"
        # Below is necessary due to a bug that sets `SplitArrayField` fields to `required`
        # even when the field is set as `required=False` above
        self.fields["aux_address"].required = False
        self.helper = FormHelper()
        self.helper.form_method = "post"
        self.helper.form_class = "newitem"
        self.helper.form_show_labels = False
        self.helper.layout = Layout(
            HTML("""
                <h4 class="icon server-icon">Server Information</h4>
                <hr>
                """),
            Row(
                Column("name", css_class="form-group col-md-6 mb-0"),
                Column("ip_address", css_class="form-group col-md-6 mb-0"),
                css_class="form-row",
            ),
            Row(
                Column("activity_type", css_class="form-group col-md-4 mb-0"),
                Column("server_role", css_class="form-group col-md-4 mb-0"),
                Column("server_provider",
                       css_class="form-group col-md-4 mb-0"),
                css_class="form-row",
            ),
            HTML("""
                <p>Include up to three additional IP addresses:</p>
                """),
            "aux_address",
            HTML("""
                <h4 class="icon comment-icon">Additional Information</h4>
                <hr>
                """),
            "note",
            "project",
            ButtonHolder(
                Submit("submit",
                       "Submit",
                       css_class="btn btn-primary col-md-4"),
                HTML("""
                    <button onclick="window.location.href='{{ cancel_link }}'" class="btn btn-outline-secondary col-md-4" type="button">Cancel</button>
                    """),
            ),
        )
Beispiel #24
0
 class SplitForm(forms.Form):
     array = SplitArrayField(forms.CharField(), required=True, size=3)