114 lines
4.1 KiB
Python
114 lines
4.1 KiB
Python
from django.http import HttpResponseRedirect
|
|
from django.template import RequestContext
|
|
from django.utils.translation import ugettext as _
|
|
from django.contrib import messages
|
|
from django.shortcuts import render_to_response, get_object_or_404
|
|
from django.core.urlresolvers import reverse
|
|
|
|
from ..models import Volume, UserWishlistVolume, UserHaveVolume, UserReadVolume
|
|
from .series import SeriesView
|
|
|
|
|
|
class WishlistVolumeView(SeriesView):
|
|
template = 'manga/series/volumes/volume-pjax.html'
|
|
|
|
def get(self, request, vid):
|
|
volume = get_object_or_404(Volume, pk=vid)
|
|
|
|
# Check if user already have this volume!
|
|
try:
|
|
UserHaveVolume.objects.get(volume=volume, user=request.user)
|
|
messages.error(
|
|
request,
|
|
_('{} is already on your collection!').format(volume)
|
|
)
|
|
except UserHaveVolume.DoesNotExist:
|
|
# Try to add to the wishlist...
|
|
try:
|
|
user_wish = UserWishlistVolume.objects.get(
|
|
volume=volume, user=request.user)
|
|
user_wish.delete()
|
|
messages.info(request,
|
|
_('{} removed from wishlist').format(volume))
|
|
except UserWishlistVolume.DoesNotExist:
|
|
# Or remove it if already in it!
|
|
user_wish = UserWishlistVolume(
|
|
volume=volume, user=request.user)
|
|
user_wish.save()
|
|
messages.success(request, _('{} wishlisted!').format(volume))
|
|
|
|
context = RequestContext(request, {'volume': volume})
|
|
|
|
if context.get('is_pjax'):
|
|
return render_to_response(self.template, context_instance=context)
|
|
else:
|
|
return HttpResponseRedirect(
|
|
reverse('series.detail', args=[volume.series.pk])
|
|
)
|
|
|
|
|
|
class HaveVolumeView(SeriesView):
|
|
template = 'manga/series/volumes/volume-pjax.html'
|
|
|
|
def get(self, request, vid):
|
|
volume = get_object_or_404(Volume, pk=vid)
|
|
|
|
try:
|
|
user_have = UserHaveVolume.objects.get(
|
|
volume=volume, user=request.user)
|
|
user_have.delete()
|
|
messages.info(request,
|
|
_('{} removed from collection.').format(volume))
|
|
except UserHaveVolume.DoesNotExist:
|
|
user_have = UserHaveVolume(volume=volume, user=request.user)
|
|
user_have.save()
|
|
messages.success(request,
|
|
_('{} added to collection!').format(volume))
|
|
|
|
# Remove from wishlist if it exists
|
|
try:
|
|
user_wish = UserWishlistVolume.objects.get(
|
|
volume=volume, user=request.user)
|
|
user_wish.delete()
|
|
except UserWishlistVolume.DoesNotExist:
|
|
pass
|
|
|
|
context = RequestContext(request, {'volume': volume})
|
|
|
|
if context.get('is_pjax'):
|
|
return render_to_response(self.template, context_instance=context)
|
|
else:
|
|
return HttpResponseRedirect(
|
|
reverse('series.detail', args=[volume.series.pk])
|
|
)
|
|
|
|
|
|
class ReadVolumeView(SeriesView):
|
|
template = 'manga/series/volumes/volume-pjax.html'
|
|
|
|
def get(self, request, vid):
|
|
volume = get_object_or_404(Volume, pk=vid)
|
|
|
|
# Try to add to the read list
|
|
try:
|
|
user_read = UserReadVolume.objects.get(
|
|
volume=volume, user=request.user)
|
|
user_read.delete()
|
|
messages.info(request,
|
|
_('{} marked as not read').format(volume))
|
|
except UserReadVolume.DoesNotExist:
|
|
# Or remove it if already in it!
|
|
user_read = UserReadVolume(
|
|
volume=volume, user=request.user)
|
|
user_read.save()
|
|
messages.success(request, _('{} marked as read!').format(volume))
|
|
|
|
context = RequestContext(request, {'volume': volume})
|
|
|
|
if context.get('is_pjax'):
|
|
return render_to_response(self.template, context_instance=context)
|
|
else:
|
|
return HttpResponseRedirect(
|
|
reverse('series.detail', args=[volume.series.pk])
|
|
)
|