Source

indie-community / gamedb / views.py

Kevin Veroneau 75f5299 
Kevin Veroneau 00cb7a5 
Kevin Veroneau 7c21c72 
Kevin Veroneau 58cb78a 


Kevin Veroneau 75f5299 


Kevin Veroneau 7c21c72 

















Kevin Veroneau 00cb7a5 








Kevin Veroneau 58cb78a 







from django.views.generic.detail import DetailView
from gamedb.models import Game, Writer, Artist, Composer
from django.views.generic.list import ListView
from gamedb.forms import FilterForm, GameForm
from django.views.generic.edit import CreateView
from django.shortcuts import redirect

class ViewGame(DetailView):
    model = Game

class GameList(ListView):
    model = Game
    def get_context_data(self, **kwargs):
        ctx = super(GameList, self).get_context_data(**kwargs)
        ctx.update({'filter_form':self.filter_form})
        return ctx
    def get_queryset(self):
        qs = super(GameList, self).get_queryset()
        self.filter_form = FilterForm(self.request.GET)
        if self.filter_form.is_valid():
            if 'game_type' in self.request.GET:
                qs=qs.filter(game_type=self.filter_form.cleaned_data['game_type'])
            if 'genre' in self.request.GET:
                qs=qs.filter(genre=self.filter_form.cleaned_data['genre'])
            if 'style' in self.request.GET:
                qs=qs.filter(style=self.filter_form.cleaned_data['style'])
        return qs

class ViewWriter(DetailView):
    model = Writer

class ViewArtist(DetailView):
    model = Artist

class ViewComposer(DetailView):
    model = Composer

class AddGame(CreateView):
    model = Game
    form_class = GameForm
    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.owner = self.request.user
        self.object.save()
        return redirect(self.object)