Finished logging in/registration.
[wolnelektury.git] / catalogue / templatetags / catalogue.py
index 1bf250c..f2f35dd 100644 (file)
@@ -3,11 +3,24 @@ from django import template
 from django.template import Node, Variable
 from django.utils.encoding import smart_str
 from django.core.urlresolvers import reverse
+from django.contrib.auth import forms
 
 
 register = template.Library()
 
 
+class RegistrationForm(forms.UserCreationForm):
+    def as_ul(self):
+        "Returns this form rendered as HTML <li>s -- excluding the <ul></ul>."
+        return self._html_output(u'<li>%(errors)s%(label)s %(field)s<span class="help-text">%(help_text)s</span></li>', u'<li>%s</li>', '</li>', u' %s', False)
+
+
+class LoginForm(forms.AuthenticationForm):
+    def as_ul(self):
+        "Returns this form rendered as HTML <li>s -- excluding the <ul></ul>."
+        return self._html_output(u'<li>%(errors)s%(label)s %(field)s<span class="help-text">%(help_text)s</span></li>', u'<li>%s</li>', '</li>', u' %s', False)
+
+
 def iterable(obj):
     try:
         iter(obj)
@@ -40,6 +53,10 @@ def title_from_tags(tags):
     
     title = u''
     
+    # Specjalny przypadek oglądania wszystkich lektur w danym zestawie
+    if len(self) == 1 and 'set' in self:
+        return u'Zestaw %s' % self['set']
+    
     # Specjalny przypadek "Twórczość w pozytywizmie", wtedy gdy tylko epoka
     # jest wybrana przez użytkownika
     if 'epoch' in self and len(self) == 1:
@@ -80,6 +97,16 @@ def title_from_tags(tags):
     return capfirst(title)
 
 
+@register.simple_tag
+def user_creation_form():
+    return RegistrationForm(prefix='registration').as_ul()
+
+
+@register.simple_tag
+def authentication_form():
+    return LoginForm(prefix='login').as_ul()
+
+
 @register.tag
 def catalogue_url(parser, token):
     bits = token.split_contents()