Renamed ModelTagManager on Book and Fragment models to tagged and added new default...
[wolnelektury.git] / catalogue / views.py
index 8feb63c..ad9bde7 100644 (file)
@@ -165,37 +165,80 @@ def login(request):
     return HttpResponse(LazyEncoder(ensure_ascii=False).encode(response_data))
 
 
-@login_required
 def book_sets(request, slug):
     book = get_object_or_404(models.Book, slug=slug)
     user_sets = models.Tag.objects.filter(category='set', user=request.user)
     book_sets = book.tags.filter(category='set', user=request.user)
     
+    if not request.user.is_authenticated():
+        return HttpResponse('<p>Aby zarządzać swoimi półkami, musisz się zalogować.</p>')
+    
     if request.method == 'POST':
-        form = forms.BookSetsForm(book, request.user, request.POST)
+        form = forms.ObjectSetsForm(book, request.user, request.POST)
         if form.is_valid():
             book.tags = ([models.Tag.objects.get(pk=id) for id in form.cleaned_data['set_ids']] +
                 list(book.tags.filter(~Q(category='set') | ~Q(user=request.user))))
             if request.is_ajax():
-                return HttpResponse('<p>Zestawy zostały zapisane</p>')
+                return HttpResponse('<p>Półki zostały zapisane.</p>')
             else:
                 return HttpResponseRedirect('/')
     else:
-        form = forms.BookSetsForm(book, request.user)
+        form = forms.ObjectSetsForm(book, request.user)
         new_set_form = forms.NewSetForm()
     
     return render_to_response('catalogue/book_sets.html', locals(),
         context_instance=RequestContext(request))
 
 
+def fragment_sets(request, id):
+    fragment = get_object_or_404(models.Fragment, pk=id)
+    user_sets = models.Tag.objects.filter(category='set', user=request.user)
+    fragment_sets = fragment.tags.filter(category='set', user=request.user)
+
+    if not request.user.is_authenticated():
+        return HttpResponse('<p>Aby zarządzać swoimi półkami, musisz się zalogować.</p>')
+
+    if request.method == 'POST':
+        form = forms.ObjectSetsForm(fragment, request.user, request.POST)
+        if form.is_valid():
+            fragment.tags = ([models.Tag.objects.get(pk=id) for id in form.cleaned_data['set_ids']] +
+                list(fragment.tags.filter(~Q(category='set') | ~Q(user=request.user))))
+            if request.is_ajax():
+                return HttpResponse('<p>Półki zostały zapisane.</p>')
+            else:
+                return HttpResponseRedirect('/')
+    else:
+        form = forms.ObjectSetsForm(fragment, request.user)
+        new_set_form = forms.NewSetForm()
+
+    return render_to_response('catalogue/fragment_sets.html', locals(),
+        context_instance=RequestContext(request))
+
+
 @login_required
 @require_POST
 def new_set(request):
     new_set_form = forms.NewSetForm(request.POST)
     if new_set_form.is_valid():
         new_set = new_set_form.save(request.user)
-        return HttpResponse('<p>Zestaw <strong>%s</strong> został utworzony</p>' % new_set)
+        return HttpResponse(u'<p>Półka <strong>%s</strong> została utworzona</p>' % new_set)
     
     return render_to_response('catalogue/book_sets.html', locals(),
             context_instance=RequestContext(request))
 
+
+@login_required
+@require_POST
+def delete_shelf(request, slug):
+    user_set = get_object_or_404(models.Tag, slug=slug, category='set', user=request.user)
+    user_set.delete()
+    return HttpResponse(u'<p>Półka <strong>%s</strong> została usunięta</p>' % user_set.name)
+    
+    
+@login_required
+def user_shelves(request):
+    shelves = models.Tag.objects.filter(category='set', user=request.user)
+    new_set_form = forms.NewSetForm()
+    return render_to_response('catalogue/user_shelves.html', locals(),
+            context_instance=RequestContext(request))
+