Beispiel #1
0
class QuotationBookFilter(django_filters.FilterSet):
    event = django_filters.ModelChoiceFilter(queryset=Event.objects.all(),
                                             required=True,
                                             widget=BootstrapedSelect2(
                                                 url="event-autocomplete", ))
    event__time_locations = django_filters.ModelChoiceFilter(
        queryset=TimeLocation.objects.all(),
        required=True,
        widget=BootstrapedSelect2(url="tl-autocomplete", ))

    class Meta:
        model = Book
        exclude = {"notes"}

    @property
    def qs(self):
        """
        Filters the Books of the Quotation to be only the ones matching the Selected TimeLocation
        by looking into the TimeOptions match between both
        """
        parent = super().qs
        # Get the TL id entered
        pk = self.data.get("event__time_locations", None)
        if pk:
            # If the id not None get the object
            time_location = TimeLocation.objects.get(id=pk)
            # And filter bookings with only to of event
            return parent.filter(times=time_location.time_option)
Beispiel #2
0
 class Meta:
     model = Book
     fields = ["user", "event", "times", "price"]
     widgets = {
         "times": M2MSelect(),
         "event": BootstrapedSelect2(url="event-autocomplete"),
         "user": BootstrapedSelect2(url="user-autocomplete", ),
     }
Beispiel #3
0
 class Meta:
     model = Book
     fields = ["user", "event", "times", "price"]
     widgets = {
         "times": BootstrapedSelect2Multiple(url="to-autocomplete"),
         "event": BootstrapedSelect2(url="event-autocomplete"),
         "user": BootstrapedSelect2(url="user-autocomplete"),
         "price": BootstrapedSelect2(url="po-autocomplete")
     }
Beispiel #4
0
 class Meta:
     model = Book
     fields = [
         "user", "event", "price", "status", "times", "comment",
         "comment_response", "note"
     ]
     widgets = {
         "times": M2MSelect(),
         "event": BootstrapedSelect2(url="event-autocomplete"),
         "price": BootstrapedSelect2(url="po-autocomplete"),
     }
Beispiel #5
0
class QuotationFilter(django_filters.FilterSet):
    event = django_filters.ModelChoiceFilter(
        queryset=Event.objects.all(),
        widget=BootstrapedSelect2(url="event-autocomplete"))
    teachers = django_filters.ModelMultipleChoiceFilter(
        queryset=User.objects.filter(is_teacher=True),
        widget=BootstrapedModelSelect2Multiple(url="teachers-autocomplete"))
    time_location = django_filters.ModelChoiceFilter(
        queryset=TimeLocation.objects.all(),
        widget=BootstrapedSelect2(url="tl-autocomplete", ))

    class Meta:
        model = Quotation
        fields = {"id", "event", "time_location", "locked"}
Beispiel #6
0
class EventFilter(django_filters.FilterSet):
    time_locations = django_filters.ModelChoiceFilter(
        queryset=TimeLocation.objects.all(),
        widget=BootstrapedSelect2(url="tl-autocomplete", ))

    class Meta:
        model = Event
        fields = {"project", "level"}
Beispiel #7
0
 class Meta:
     model = Quotation
     fields = (
         "event",
         "time_location",
         "teachers",
         "related_rent",
         "total_attendees",
         "direct_revenue",
         "fix_profit",
         "admin_profit",
         "partner_profit",
     )
     widgets = {
         "teachers":
         BootstrapedSelect2Multiple(url="teachers-autocomplete"),
         "event": BootstrapedSelect2(url="event-autocomplete"),
         "time_location": BootstrapedSelect2(url="tl-autocomplete"),
     }
Beispiel #8
0
class AttendanceFilter(django_filters.FilterSet):
    book__user = django_filters.ModelChoiceFilter(
        queryset=User.objects.all(),
        widget=BootstrapedSelect2(url="user-autocomplete"),
        label="User")
    book__event = django_filters.ModelChoiceFilter(
        queryset=Event.objects.all(),
        widget=BootstrapedSelect2(url="event-autocomplete"),
        label="Event")
    attendance_date = django_filters.DateFilter(
        field_name="attendance_date",
        method="filter_by_date_contains",
    )

    class Meta:
        model = Attendance
        fields = {'id'}

    def filter_by_date_contains(self, queryset, name, value):
        return queryset.filter(Q(attendance_date__icontains=value))
Beispiel #9
0
class AccountFilter(django_filters.FilterSet):
    book__user = django_filters.ModelChoiceFilter(
        queryset=User.objects.all(),
        widget=BootstrapedSelect2(url="user-autocomplete")
    )
    book__event = django_filters.ModelChoiceFilter(
        queryset=Event.objects.all(), widget=BootstrapedSelect2(url="event-autocomplete",)
    )
    pay_till = django_filters.DateFilter(field_name="pay_till", method="filter_by_date_smaller_than", label="Pay till")
    balance = django_filters.ChoiceFilter(field_name="balance", choices=BALANCE, label="Account")
    start_pay_date = django_filters.DateFilter(field_name="pay_date", lookup_expr="gt", label="Start Pay date",)
    end_pay_date = django_filters.DateFilter(field_name="pay_date", lookup_expr="lt", label="End Pay date",)
    range_pay_date = django_filters.DateRangeFilter(field_name="pay_date", label="Range Pay date")

    class Meta:
        model = Invoice
        fields = {"id", "status", "methode"}

    def filter_by_date_smaller_than(self, queryset, name, value):
        return queryset.filter(Q(pay_till__lte=value))
Beispiel #10
0
class BookFilter(django_filters.FilterSet):
    magic = django_filters.CharFilter(label='Magic Box',
                                      method='filter_by_all_name_fields')

    user = django_filters.ModelChoiceFilter(
        label='Registered User',
        queryset=User.objects.all(),
        widget=BootstrapedSelect2(url=("user-autocomplete")))
    event = django_filters.ModelChoiceFilter(queryset=Event.objects.all(),
                                             widget=BootstrapedSelect2(
                                                 url="event-autocomplete", ))
    times = django_filters.ModelMultipleChoiceFilter(
        queryset=TimeOption.objects.all(),
        widget=BootstrapedModelSelect2Multiple(url="to-autocomplete", ))
    start_date = django_filters.DateFilter(
        field_name="booked_at",
        lookup_expr="gt",
        label="Start date",
    )
    end_date = django_filters.DateFilter(
        field_name="booked_at",
        lookup_expr="lt",
        label="End date",
    )
    date_range = django_filters.DateRangeFilter(field_name="booked_at",
                                                label="Range")

    class Meta:
        model = Book
        fields = {"status", "times", "event__level"}

    def filter_by_all_name_fields(self, queryset, name, value):
        return queryset.filter(
            Q(user__first_name__icontains=value)
            | Q(user__last_name__icontains=value)
            | Q(user__email__icontains=value)
            | Q(user__id__icontains=value)
            | Q(bookuserinfo__first_name__icontains=value)
            | Q(bookuserinfo__last_name__icontains=value)
            | Q(bookuserinfo__email__icontains=value)
            | Q(bookuserinfo__id__icontains=value))