X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/b2d342589a7889a3b096e7192453d53bd28eed7d..102acc0b6eb715826f26b5082611604cf6ebe240:/src/social/forms.py?ds=sidebyside diff --git a/src/social/forms.py b/src/social/forms.py old mode 100755 new mode 100644 index 389185889..4d39f0812 --- a/src/social/forms.py +++ b/src/social/forms.py @@ -1,51 +1,51 @@ -# -*- coding: utf-8 -*- -# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Wolne Lektury. See NOTICE for more information. # from django import forms -from django.utils.translation import ugettext_lazy as _ -from catalogue.models import Tag -from catalogue import utils -from social.utils import get_set, set_sets +from catalogue.models import Book +from . import models -class UserSetsForm(forms.Form): - def __init__(self, book, user, *args, **kwargs): - super(UserSetsForm, self).__init__(*args, **kwargs) - self.fields['set_ids'] = forms.ChoiceField( - choices=[(tag.id, tag.name) for tag in Tag.objects.filter(category='set', user=user).iterator()], - ) +class AddSetForm(forms.Form): + name = forms.CharField(max_length=50) + book = forms.IntegerField() + def save(self, user): + name = self.cleaned_data['name'].strip() + if not name: return + ul = models.UserList.get_by_name(user, name, create=True) + try: + book = Book.objects.get(id=self.cleaned_data['book']) + except Book.DoesNotExist: + return -class ObjectSetsForm(forms.Form): - tags = forms.CharField(label=_('Tags (comma-separated)'), required=False, - widget=forms.Textarea()) + try: + ul.append(book=book) + except: + pass - def __init__(self, obj, user, *args, **kwargs): - self._obj = obj - self._user = user - data = kwargs.setdefault('data', {}) - if 'tags' not in data and user.is_authenticated(): - data['tags'] = ', '.join(t.name for t in obj.tags.filter(category='set', user=user).iterator() if t.name) - super(ObjectSetsForm, self).__init__(*args, **kwargs) + return book, ul - def save(self, request): - tags = [get_set(self._user, tag_name.strip()) for tag_name in self.cleaned_data['tags'].split(',')] - set_sets(self._user, self._obj, tags) - return {"like": True} +class RemoveSetForm(forms.Form): + slug = forms.CharField(max_length=50) + book = forms.IntegerField() -class NewSetForm(forms.Form): - name = forms.CharField(max_length=50, required=True) + def save(self, user): + slug = self.cleaned_data['slug'] + try: + ul = models.UserList.objects.get(user=user, slug=slug) + except models.UserList.DoesNotExist: + return + try: + book = Book.objects.get(id=self.cleaned_data['book']) + except Book.DoesNotExist: + return - def __init__(self, *args, **kwargs): - super(NewSetForm, self).__init__(*args, **kwargs) - self.fields['name'].widget.attrs['title'] = _('Name of the new shelf') + try: + ul.userlistitem_set.filter(book=book).delete() + except: + pass - def save(self, user, commit=True): - name = self.cleaned_data['name'] - new_set = Tag(name=name, slug=utils.get_random_hash(name), sort_key=name.lower(), category='set', user=user) - - new_set.save() - return new_set + return book, ul