From 7cf1f5926f871122e6e240432531ae942c4f9df1 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Wed, 21 Dec 2011 09:00:58 +0100 Subject: [PATCH 1/1] new book.short_html, unfinished --- .../catalogue/migrations/0021_build_covers.py | 17 ++-- apps/catalogue/models.py | 16 ++-- wolnelektury/settings.py | 3 +- wolnelektury/static/css/base.css | 12 +++ wolnelektury/static/css/book_box.css | 79 +++++++++++++++-- wolnelektury/static/css/catalogue.css | 11 +++ wolnelektury/static/css/header.css | 4 +- wolnelektury/static/fonts/WL-Nav.ttf | Bin 0 -> 9492 bytes wolnelektury/static/img/lang-arrow.png | Bin 243 -> 0 bytes wolnelektury/templates/base.html | 4 +- .../templates/catalogue/book_mini_box.html | 3 +- .../templates/catalogue/book_short.html | 83 ++++++++++++++---- .../catalogue/tagged_object_list.html | 2 + 13 files changed, 192 insertions(+), 42 deletions(-) create mode 100755 wolnelektury/static/css/catalogue.css create mode 100644 wolnelektury/static/fonts/WL-Nav.ttf delete mode 100644 wolnelektury/static/img/lang-arrow.png diff --git a/apps/catalogue/migrations/0021_build_covers.py b/apps/catalogue/migrations/0021_build_covers.py index 126417d5f..319decb18 100644 --- a/apps/catalogue/migrations/0021_build_covers.py +++ b/apps/catalogue/migrations/0021_build_covers.py @@ -10,15 +10,20 @@ class Migration(DataMigration): "Write your forwards methods here." from StringIO import StringIO from django.core.files.base import ContentFile + from librarian import ValidationError from librarian.cover import WLCover from librarian.dcparser import BookInfo - for book in orm.Book.objects.filter(cover=''): - book_info = BookInfo.from_file(book.xml_file.path) - cover = WLCover(book_info).image() - imgstr = StringIO() - cover.save(imgstr, 'png') - book.cover.save('book/png/%s.png' % book.slug, + for book in orm.Book.objects.filter(cover=None): + try: + book_info = BookInfo.from_file(book.xml_file.path) + except ValidationError: + pass + else: + cover = WLCover(book_info).image() + imgstr = StringIO() + cover.save(imgstr, 'png') + book.cover.save('book/png/%s.png' % book.slug, ContentFile(imgstr.getvalue())) diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index 6470ebb83..d615fb65b 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -23,7 +23,7 @@ from django.conf import settings from newtagging.models import TagBase, tags_updated from newtagging import managers from catalogue.fields import JSONField, OverwritingFileField -from catalogue.utils import create_zip +from catalogue.utils import create_zip, split_tags from catalogue.tasks import touch_tag from shutil import copy from glob import glob @@ -490,6 +490,7 @@ class Book(models.Model): cache_key = "Book.short_html/%d/%s" for lang, langname in settings.LANGUAGES: cache.delete(cache_key % (self.id, lang)) + cache.delete(cache_key = "Book.mini_box/%d" % (self.id, )) # Fragment.short_html relies on book's tags, so reset it here too for fragm in self.fragments.all(): fragm.reset_short_html() @@ -504,22 +505,17 @@ class Book(models.Model): if short_html is not None: return mark_safe(short_html) else: - tags = self.tags.filter(~Q(category__in=('set', 'theme', 'book'))) - tags = [mark_safe(u'%s' % (tag.get_absolute_url(), tag.name)) for tag in tags] + tags = self.tags.filter(category__in=('author', 'kind', 'genre', 'epoch')) + tags = split_tags(tags) formats = [] # files generated during publication - if self.has_media("html"): - formats.append(u'%s' % (reverse('book_text', args=[self.fileid()]), _('Read online'))) for ebook_format in self.ebook_formats: if self.has_media(ebook_format): formats.append(u'%s' % ( - self.get_media(ebook_format).url, + "", #self.get_media(ebook_format).url, ebook_format.upper() )) - # other files - for m in self.media.order_by('type'): - formats.append(u'%s' % (m.file.url, m.type.upper())) formats = [mark_safe(format) for format in formats] @@ -532,7 +528,7 @@ class Book(models.Model): def mini_box(self): if self.id: - cache_key = "Book.mini_boxs/%d" % (self.id, ) + cache_key = "Book.mini_box/%d" % (self.id, ) short_html = cache.get(cache_key) else: short_html = None diff --git a/wolnelektury/settings.py b/wolnelektury/settings.py index 40b45be04..b597e3347 100644 --- a/wolnelektury/settings.py +++ b/wolnelektury/settings.py @@ -156,7 +156,7 @@ INSTALLED_APPS = [ ] #CACHE_BACKEND = 'locmem:///?max_entries=3000' -CACHE_BACKEND = 'memcached://127.0.0.1:11211/' +#CACHE_BACKEND = 'memcached://127.0.0.1:11211/' CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True # CSS and JavaScript file groups @@ -171,6 +171,7 @@ COMPRESS_CSS = { 'css/main_page.css', 'css/dialogs.css', 'css/book_box.css', + 'css/catalogue.css', 'css/sponsors.css', ], 'output_filename': 'css/all.min?.css', diff --git a/wolnelektury/static/css/base.css b/wolnelektury/static/css/base.css index 067d9fd0d..35aed2ea8 100755 --- a/wolnelektury/static/css/base.css +++ b/wolnelektury/static/css/base.css @@ -1,3 +1,15 @@ +/* Logo font */ +@font-face { + /* IE version */ + font-family: WL-Logo; + src: url(/static/fonts/WL.eot); +} +@font-face { + font-family: WL-Nav; + src: url(/static/fonts/WL-Nav.ttf) format("truetype"); +} + + html { margin: 0; padding: 0; diff --git a/wolnelektury/static/css/book_box.css b/wolnelektury/static/css/book_box.css index a959d849c..2faa1a2d8 100755 --- a/wolnelektury/static/css/book_box.css +++ b/wolnelektury/static/css/book_box.css @@ -1,11 +1,19 @@ -.book-mini-box { +.book-mini-box, .book-box { display: inline-block; margin: 0; - width: 12.5em; vertical-align: top; } -.book-mini-box a { + +.book-box { + width: 37.5em; +} + +.book-mini-box { + width: 12.5em; +} + +.book-mini-box a, .book-box-inner { display: block; color: black; border: 1px solid #ddd; @@ -19,12 +27,73 @@ overflow: hidden; } -.book-mini-box img { +.book-mini-box a { + height: 20em; + margin: .1em; +} +.book-box-inner { + height: 14.4em; + margin: .5em; +} + +.book-mini-box img, .book-box img { width: 10.8em; height: 14.4em; +} +.book-mini-box img { margin-bottom: .3em; } +.book-box img { + float: left; + margin-right: 1.5em; +} .book-mini-box .author { color: #777; -} \ No newline at end of file +} + + +.book-box-body { + height: 13em; + overflow: hidden; +} +.book-box-head { + min-height: 7em; +} +.book-box-tag { + font-size: .8em; + margin-right: .5em; +} +.book-box-download { + position: relative; +} +.book-box-formats { + display: none; + top: -2em; + position: absolute; + height: 2em; + width: 100em; +} +.book-box-formats a { + margin-right: 1em; +} +.book-box-download:hover .book-box-formats { + display: block; +} + +.book-box-tools a:before { + content: "⇩"; + font-family: WL-Nav; + font-size: 2em; + margin-right: .25em; + vertical-align: middle; +} +.book-box-read { + width: 10em; +} +.book-box-download { + width: 6em; +} +.book-box-audiobook { + width: 6em; +} diff --git a/wolnelektury/static/css/catalogue.css b/wolnelektury/static/css/catalogue.css new file mode 100755 index 000000000..c971ca80b --- /dev/null +++ b/wolnelektury/static/css/catalogue.css @@ -0,0 +1,11 @@ +#books-list ol { + margin: 0; + padding: 0; + list-style: none; +} + +#books-list li { + display: inline-block; + margin: 0; + padding: 0; +} diff --git a/wolnelektury/static/css/header.css b/wolnelektury/static/css/header.css index abea73cc7..9e81463df 100755 --- a/wolnelektury/static/css/header.css +++ b/wolnelektury/static/css/header.css @@ -130,8 +130,10 @@ ul#catalogue a { #lang-button:after { - content: url(/static/img/lang-arrow.png); padding-left: .5em; + content: "↓"; + font-family: WL-Nav; + vertical-align: middle; } #lang-menu { position: relative; diff --git a/wolnelektury/static/fonts/WL-Nav.ttf b/wolnelektury/static/fonts/WL-Nav.ttf new file mode 100644 index 0000000000000000000000000000000000000000..05282b86652d3496d73782b935d96ef2f8712a6f GIT binary patch literal 9492 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 literal 0 HcmV?d00001 diff --git a/wolnelektury/static/img/lang-arrow.png b/wolnelektury/static/img/lang-arrow.png deleted file mode 100644 index c79e3f1b26f2afe5278a9ccc06d4543b135d6683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^fbCYGe8D3oWG zWGJ|M`UZqI@`(c#C3w0xhG?9hd)`p!umK0lfvI+s32GfP<=6cTB46^SW?mM`=c>RIjipkD%or5()RH$t1oVPJ| hnCv~vI?pjwFjh~uG51hkG#6+WgQu&X%Q~loCID{zO!5E# diff --git a/wolnelektury/templates/base.html b/wolnelektury/templates/base.html index 19c808a1e..534f5cfc1 100644 --- a/wolnelektury/templates/base.html +++ b/wolnelektury/templates/base.html @@ -7,8 +7,8 @@ - {% trans "Wolne Lektury" %} :: - {% block titleextra %}{% endblock %} + {% block title %}{% trans "Wolne Lektury" %} :: + {% block titleextra %}{% endblock %}{% endblock %} {% compressed_css "all" %} diff --git a/wolnelektury/templates/catalogue/book_mini_box.html b/wolnelektury/templates/catalogue/book_mini_box.html index 6728be84a..9b61283e7 100755 --- a/wolnelektury/templates/catalogue/book_mini_box.html +++ b/wolnelektury/templates/catalogue/book_mini_box.html @@ -1,4 +1,3 @@ -{% load i18n %} {% load thumbnail %}
@@ -9,7 +8,7 @@ {% empty %} {{ book.cover.url }} {% endthumbnail %} - " alt="{% trans "Book cover" %}" /> + " alt="Cover" /> {% endif %} {% for author in authors %}
{{ author }}
diff --git a/wolnelektury/templates/catalogue/book_short.html b/wolnelektury/templates/catalogue/book_short.html index aced8bf48..1b6466648 100644 --- a/wolnelektury/templates/catalogue/book_short.html +++ b/wolnelektury/templates/catalogue/book_short.html @@ -1,18 +1,71 @@ {% load i18n %} -
- - {% if book.children.all|length %} -
- {% else %} -
- {% endif %} -
-

{{ book.title }}

- {% if formats %} -

{% trans "Jump to" %}: {{ formats|join:", " }}

+{% load thumbnail %} +
+
+ + {% if book.cover %} + Cover {% endif %} -

{% trans "Categories" %}: {{ tags|join:", " }}

+
+
+
+
+ {% for author in tags.author %} + {{ author }} + {% endfor %} +
+
{{ book.title }}
+
+
+ {% spaceless %} + + {% trans "Epoch" %}:  + + {% for tag in tags.epoch %} + {{ tag.name }} + {% endfor %} + + + {% trans "Kind" %}:  + + {% for tag in tags.kind %} + {{ tag.name }} + {% endfor %} + + + {% trans "Genre" %}:  + + {% for tag in tags.genre %} + {{ tag.name }} + {% endfor %} + + + {% endspaceless %} +
-
\ No newline at end of file + +
+
diff --git a/wolnelektury/templates/catalogue/tagged_object_list.html b/wolnelektury/templates/catalogue/tagged_object_list.html index bff937463..7cae9ebed 100644 --- a/wolnelektury/templates/catalogue/tagged_object_list.html +++ b/wolnelektury/templates/catalogue/tagged_object_list.html @@ -88,6 +88,7 @@ {% endif %} {% if object_list %} + {% spaceless %}
    {% for book in object_list %}
  1. @@ -97,6 +98,7 @@ {{ book.short_html }}
  2. {% endfor %}
+ {% endspaceless %} {% paginate %} {% else %} {% trans "Sorry! Search cirteria did not match any resources." %} -- 2.20.1