Device tokens api
[wolnelektury.git] / src / social / forms.py
1 # This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
3 #
4 from django import forms
5
6 from catalogue.models import Book
7 from . import models
8
9
10 class AddSetForm(forms.Form):
11     name = forms.CharField(max_length=50)
12     book = forms.IntegerField()
13
14     def save(self, user):
15         name = self.cleaned_data['name'].strip()
16         if not name: return
17         ul = models.UserList.get_by_name(user, name, create=True)
18         try:
19             book = Book.objects.get(id=self.cleaned_data['book'])
20         except Book.DoesNotExist:
21             return
22
23         try:
24             ul.append(book=book)
25         except:
26             pass
27
28         return book, ul
29
30
31 class RemoveSetForm(forms.Form):
32     slug = forms.CharField(max_length=50)
33     book = forms.IntegerField()
34
35     def save(self, user):
36         slug = self.cleaned_data['slug']
37         try:
38             ul = models.UserList.objects.get(user=user, slug=slug)
39         except models.UserList.DoesNotExist:
40             return
41         try:
42             book = Book.objects.get(id=self.cleaned_data['book'])
43         except Book.DoesNotExist:
44             return
45
46         try:
47             ul.userlistitem_set.filter(book=book).delete()
48         except:
49             pass
50
51         return book, ul