Hi,

I am writing a resource booking system in django using the admin
functionality.

I have a "Booking" model, a "ResourceType" model, and a "Resource"
model.

The booking model has date from and to fields,  a foreign key field to
select the ResourceType, and a ManyToManyField to link to the Resource
model.

I would like the user to be able to enter the dates to and from, and
select the resource type. Then from these choices this would only show
those resources available that belong to the specific resource type.

I have defined an "is_available" method on the Resource, and am able
to pass to and from dates and return True/False if they are available.

My problem is updating the form with this limited set of Resources to
choose from.

I am happy to press "Save and continue editing" in order to process
the dates (no need for ajax)

My question is how to get the dates and resource type in to my form
Model and then into the admin....

Any pointers as to how to do this?

My attempt below - fails :(

class BookingAdminForm(forms.ModelForm):

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

                if self.is_valid():
                        resourcesChoices = 
self.getAvailableResources(self.cleaned_data
['booked_from'], self.cleaned_data['booked_until'])
                        self.fields['resources'] = forms.MultipleChoiceField
(choices=resourcesChoices)
                else:
                        pass
                        #del self.fields['resources']


        def getAvailableResources(self, booked_from, booked_until):
                allResources = Resource.objects.all()
                choices = ((0,'none',),)
                for resource in allResources:
                        if resource.is_available(booked_from, booked_until):
                                choices += ((resource.id, resource.name,),)
                return choices

        class Meta:
                model = Booking



class BookingAdmin(admin.ModelAdmin):
        list_display = ('customer',
'resource_type','number_of_resources','booked_from','booked_until',)
        list_filter = ('resource_type', 'created_on',)
        date_hierarchy = 'booked_from'
        search_fields = ['group_leader']
        filter_horizontal = ('resources',)
        form = BookingAdminForm

        inlines = [NoteInline]
        save_on_top = True

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to