From 80557d8c0fbae889bb21a9ec0bd3aa6eeebaa3db Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Fri, 19 Sep 2008 11:17:23 +0200 Subject: [PATCH 01/16] Completed voluntary_services.html page. --- wolnelektury/media/css/master.css | 4 +- .../templates/info/voluntary_services.html | 99 ++++++++++++++++++- 2 files changed, 99 insertions(+), 4 deletions(-) diff --git a/wolnelektury/media/css/master.css b/wolnelektury/media/css/master.css index 4e22326ec..76bff57b6 100644 --- a/wolnelektury/media/css/master.css +++ b/wolnelektury/media/css/master.css @@ -37,9 +37,9 @@ h2 { } h3 { - font-size: 1.3em; + font-size: 1em; font-weight: bold; - margin: 0.2em 0 0 0; + margin: 0.2em 0 -1em 0; color: #333; } diff --git a/wolnelektury/templates/info/voluntary_services.html b/wolnelektury/templates/info/voluntary_services.html index 25c447476..9b7e9b105 100644 --- a/wolnelektury/templates/info/voluntary_services.html +++ b/wolnelektury/templates/info/voluntary_services.html @@ -3,13 +3,108 @@ {% block title %}Wolontariat dla wiedzy w WolneLektury.pl{% endblock %} {% block body %} -

Wolontariat dla wiedzy

+

Możesz nam pomóc

{{ form.q }} lub wróć do strony głównej

+
+

Wolontariat

+ +

Utwory włączane sukcesywnie do naszej biblioteki staramy się opracowywać jak najdokładniej. Jest to możliwe + tylko dzięki współpracującym z nami wolontariuszom.

+ +

Zapraszamy wszystkie osoby, które chcą współtworzyć szkolną bibliotekę internetową Wolne Lektury.

+ +

Wszystkim wolontariuszom oferujemy szkolenia i praktykę w zakresie edycji tekstów: redakcji technicznej i + merytorycznej. Wolontariusze mogą poznać problemy, ale i możliwości, jakie wiążą się z publikacjami internetowymi. + Współorganizują z nami szkolenia i konferencje, pomagają w przygotowaniu wersji tekstów do słuchania (tzw. + audiobooków). Wystawiamy umowy i zaświadczenia o tym, kiedy i jakie prace wykonywał wolontariusz na rzecz naszej + fundacji. Szkolenia, praktyka edytorska i potwierdzające je zaświadczenia mogą się okazać istotne w procesie + podnoszenia kwalifikacji i awansu zawodowego.

+ +

Co jest do zrobienia?

+ +

Najwięcej pracy mamy przy przygotowaniu lektur do publikacji. Z tekstu, który otrzymujemy z Biblioteki + Narodowej, należy usunąć literówki i inne mechaniczne błędy, a następnie opatrzyć tekst przypisami, pamiętając o + tym, że nasza oferta skierowana jest przede wszystkim do uczniów, dla których wiele słów i zwrotów będzie brzmiało + anachronicznie. Wydania dawniejsze (rygor wyznacza tu prawo autorskie) poddawane są koniecznym uwspółcześnieniom + językowym, np. w zakresie ortografii lub fleksji, przy czym pilnujemy, aby nie naruszać artystycznej swoistości + tekstu. Ostatnim etapem jest wyszukiwanie motywów i tematów literackich, mające pomóc przejrzeć literaturę "na + wskroś". We wszystkich tych pracach wspomagają nas wolontariusze – nauczyciele i studenci – często służąc również + radami i uwagami przy podejmowaniu ważnych decyzji.

+ +

Jak się do nas zgłosić?

+ +

Wszystkie zainteresowane osoby prosimy o przysłanie maila na adres fundacja@nowoczesnapolska.org.pl. + Zapraszamy także na naszą stronę roboczą, na której pracujemy nad tekstami: + http://wiki.wolnepodreczniki.pl/Lektury.

+ +
+
+

Najbardziej zasłużeni wolontariusze

+ +

Anerys (współpracuje z nami od 5 lipca 2007)

+ +

m.in. brała udział w tworzeniu listy motywów i tematów literackich, dyskusji o gatunkach literackich, opracowywała Bogurodzicę, „Fraszki” i „Treny” Kochanowskiego; wiersze Słowackiego (Grób Agamemnona), „Świętoszka” Moliere'a, czy poezje Kasprowicza (w tym hymn „Dies Irae”); zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Anerys

+ + +

Olga_Wojtczak (współpracuje z nami od 21 października 2008)

+ +

m.in. opracowywała powieści Sienkiewicza (Trylogia), Reymonta, Żeromskiego, dramaty Shakespeare'a; zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Olga_Wojtczak

+ + +

Renataml (współpracuje z nami od 30 czerwca 2007)

+ +

brała udział w dyskusji na temat listy motywów, wspomagała nas radami jako doświadczona nauczycielka, edytowała „Lalkę” Prusa, „Balladynę” Słowackiego, „Siłaczkę” Żeromskiego. + + http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Renataml

+ + +

Ingene (współpracuje z nami od 16 lipca 2008)

+ +

m.in. opracowywała „Siłaczkę” Żeromskiego, „Quo vadis” Sienkiewicza oraz „Treny” Kochanowskiego; zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Ingene

+ + +

Marysia Bailey (współpracuje z nami od 1 października 2007)

+ +

m.in. brała udział w tworzeniu listy motywów i tematów literackich oraz opisywaniu ich użycia; opracowywała „Chłopów” Reymonta, „Lalkę” Prusa, „Nie-Boską komedię” Krasińskiego, „Bajki” i „Satyry” Krasickiego, „Antygonę” Sofoklesa oraz utwory Kochanowskiego, Morsztyna, Mickiewicza, Kasprowicza, Goethego, Oppmana, Kasprowicza; zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/index.php?title=Specjalna:Wk%C5%82ad&limit=500&target=Marysiabailey; ponadto przygotowywała i prowadziła szkolenie dla wolontariuszy 15 marca 2008; zajmowała się proofreadingiem, a obecnie kieruje pracami nad audiobookami.

+ + +

Agnieszka Kappa (współpracuje z nami od 16 marca 2008)

+ +

m.in. brała udział w tworzeniu listy i opisie użycia motywów i tematów literackich; opracowywała teksty Sienkiewicza (Latarnik, Janko Muzykant, Quo vadis); zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/index.php?title=Specjalna:Wk%C5%82ad&limit=500&target=AgnieszkaKappa

+ + +

Ewa_Serafin (współpracuje z nami od 15 marca 2008)

+ +

m.in. brała udział w tworzeniu listy i opisie użycia motywów i tematów literackich, opracowywała poezje Kasprowicza („Z wichrów i hal”, „Nad przepaściami”, „W ciemności schodzi moja dusza” oraz „Nad Niemnem” Orzeszkowej; zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Ewa_Serafin

+ + +

Agatapaszkowska (współpracuje z nami od 15 marca 2008)

+ +

m.in. opracowywała „W pustyni i w puszczy” Sienkiewicza ; zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Agatapaszkowska

+ + +

EmiliaZdankiewicz (współpracuje z nami od 17 marca 2008)

+ +

m.in. motywy literackie dyskusja i opisywanie, Słowacki, Kordian; Konopnicka, Nasza szkapa; Mickiewicz, Dziady cz. III; zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/EmiliaZdankiewicz

+ + +

Jmyszkowska (współpracuje z nami od 26 marca 2008)

+ +

m. in. opracowywała „Giaura” Byrona oraz „Quo vadis” Sienkiewicza; zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Jmyszkowska

+ + +

Hanna_Golab (współpracuje z nami od 15 marca 2008)

+ +

opracowywała „Króla Edypa” Sofoklesa oraz „Dusiołka” Leśmiana; zob. też na naszej stronie „wkład użytkownika”: http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Hanna_Golab

+
+ +
+
-

Wolontariat

+

Wolontariat dla wiedzy

Biogramy pisarzy oraz definicje epok i gatunków literackich w bibliotece internetowej Wolne Lektury napisali uczniowie -- 2.20.1 From 1fa5842d75ed72f9ed141d2283fbf1fab012ab92 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Fri, 19 Sep 2008 11:26:25 +0200 Subject: [PATCH 02/16] Added tag wolnelektury-0.9.3 for changeset 293052c8f613 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 032511c8b..ed12aea1b 100644 --- a/.hgtags +++ b/.hgtags @@ -3,3 +3,4 @@ 4da7f67e38ed4599d3925c92a7fab8f61467bfc3 wolnelektury-0.9 fed64f1e09c1859829839fe8c09dc1c2848389a4 wolnelektury-0.9.1 5eee4534e79b9102c6e7c579cc2a6c8d74de9c05 wolnelektury-0.9.2 +293052c8f613021de21e6d036e48652f4a414b35 wolnelektury-0.9.3 -- 2.20.1 From 2f46024c4c5987f8ae35b5dfaaf13569327bc46b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 13:55:49 +0200 Subject: [PATCH 03/16] Added report about open-source code used in our project. --- README | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/README b/README index bb39534eb..0a02dd70e 100644 --- a/README +++ b/README @@ -15,7 +15,7 @@ Just execute this commands: cd wolnelektury.pl source setpythonpath.sh cd wolnelektury - ./manage.py syncdb + ./manage.py syncdbc ./manage.py importbooks ../books/01 ../books/02 ../books/03 ../setmainpage.py @@ -42,3 +42,65 @@ Co numerujemy 4. W utworach mieszanych – pisanych na przemian wierszem i prozą (np. dramaty Shakespeare'a) numerujemy w części wierszowanej każdy wers (wyświetlając co 5), a w części prozą – kolejne akapity 5. Ustaloną tradycyjnie numerację ma jedynie „Biblia” i tych ustaleń się trzymamy + +Używany kod open-source +======================= + +django +------ + - Źródła: [djangoproject.com](http://www.djangoproject.com/) + - Autorzy: [wielu autorów](http://code.djangoproject.com/browser/django/trunk/AUTHORS) + - Licencja: [BSD License](http://code.djangoproject.com/browser/django/trunk/LICENSE) + - Typ: framework + +django-chunks +------------- + - Źródła: [Google Code](http://code.google.com/p/django-chunks/) + - Autorzy: Clint Ecker + - Licencja: [New BSD License](http://www.opensource.org/licenses/bsd-license.php) + - Typ: biblioteka (aplikacja django) + +django-pagination +----------------- + - Źródła: [Google Code](http://code.google.com/p/django-pagination/) + - Autorzy: James Tauber , leidel@gmail.com + - Licencja: [New BSD License](http://www.opensource.org/licenses/bsd-license.php) + - Typ: biblioteka (aplikacja django) + +django-compress +--------------- + - Źródła: [Google Code](http://code.google.com/p/django-compress/) + - Autorzy: Andreas Pelme + - Licencja: [MIT License](http://www.opensource.org/licenses/mit-license.php) + - Typ: biblioteka (aplikacja django) + +django-newtagging +----------------- + - Źródła: [BitBucket](http://www.bitbucket.org/zuber/django-newtagging/) + - Autorzy: Marek Stępniowski + - Licencja: [MIT License](http://www.opensource.org/licenses/mit-license.php) + - Typ: biblioteka (aplikacja django) + - Nota: Aplikacja wzorowana na [django-tagging](http://code.google.com/p/django-tagging/), która jest również wydana na licencji [MIT](http://www.opensource.org/licenses/mit-license.php) Około połowa kodu jest dzielona. + +feedparser +---------- + - Źródła: [Google Code](http://code.google.com/p/feedparser/) + - Autorzy: Mark Pilgrim + - Licencja: [MIT License](http://www.opensource.org/licenses/mit-license.php) + - Typ: biblioteka + +markupstring +------------ + - Żródła: [ASPN Cookbook](http://code.activestate.com/recipes/389023/) + - Autorzy: Thomas Hinkle + - Licencja: [MIT License](http://code.activestate.com/help/terms/) + - Typ: biblioteka + - Nota: Zmienione przez Marka Stępniowskiego tak, żeby akceptowało ciągi znaków Unicode + +lxml +---- + - Żródła: [codespeak.net](http://codespeak.net/lxml/index.html#download) + - Autorzy: [wielu autorów](http://codespeak.net/lxml/credits.html) + - Licencja: [BSD License](http://codespeak.net/lxml/index.html#license) + - Typ: biblioteka + -- 2.20.1 From 7f9be0da6125390d5374ba3abebdd22921f2d8a3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 13:56:28 +0200 Subject: [PATCH 04/16] Removed numbering section from README. --- README | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/README b/README index 0a02dd70e..6dde0816b 100644 --- a/README +++ b/README @@ -22,27 +22,6 @@ Just execute this commands: [TODO] -Numbering -========= - -Co numerujemy - - 1. W utworach wierszowanych każdy wers, - * przy czym powinien pokazywać się co 5 numer wersu - * utwory wierszowane tzn. wiersze liryczne, poematy prozą, powieści poetyckie, dramaty wierszowane itp.; należą tu np. „Pieśni” Kochanowskiego, liryki Leśmiana, „Giaur” Byrona, „Pan Tadeusz” Mickiewicza, „Balladyna” Słowackiego i in. - * NIE numerujemy wersów utworów liczących sobie mniej niż 5 wersów - * za to wskazujemy 5 i 10 wers w utworach, które z zasady liczą sobie zawsze stałą liczbę wersów – tzn. sonety) - 2. W utworach prozą, każdy akapit (wyróżniony wcięciem akapitowym), - * przy czym każdy numer akapitu powinien się wyświetlać, ułatwiając orientację w tekście - * do utworów prozą należą np. opowiadania, powieści, „Księgi narodu polskiego i pielgrzymstwa polskiego” Mickiewicza, dramaty prozą takie jak „Moralność Pani Dulskiej” Zapolskiej - * NIE numerujemy w dramatach: list dialogowych, nagłówków (numer aktu, sceny, osoba), «wers_cd» ani didaskaliów – tylko goły tekst. - * NIE numerujemy nagłówków i tytułów w opowiadaniach, nowelach, legendach i powieściach - * tam, gdzie akapit jest przerwany cytatem i następnie kontynuowany bez wcięcia akapitowego (akap_cd» – liczymy go razem z cytatem jako jeden numer - 3. W dramatach numeracja zamyka się w ramach jednego aktu - 4. W utworach mieszanych – pisanych na przemian wierszem i prozą (np. dramaty Shakespeare'a) numerujemy w części wierszowanej każdy wers (wyświetlając co 5), a w części prozą – kolejne akapity - 5. Ustaloną tradycyjnie numerację ma jedynie „Biblia” i tych ustaleń się trzymamy - - Używany kod open-source ======================= -- 2.20.1 From 1f2b24b30ba812716cf33af90b8f6ab1171d12c6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 15:54:54 +0200 Subject: [PATCH 05/16] Start scroll only if anchor references existing element. --- wolnelektury/media/js/book.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/wolnelektury/media/js/book.js b/wolnelektury/media/js/book.js index fb4467f7b..41e3be28c 100644 --- a/wolnelektury/media/js/book.js +++ b/wolnelektury/media/js/book.js @@ -1,10 +1,12 @@ $(function() { function scrollToAnchor(anchor) { if (anchor) { - var name = anchor.slice(1); - $.scrollTo('a[name="' + name + '"]', 500, {offset: {top: -50, left: 0}}); - $('a[name="' + name + '"]').highlightFade('yellow'); - window.location.hash = '#' + name; + var element = $('a[name="' + anchor.slice(1) + '"]'); + if (element.length > 0) { + $.scrollTo(element, 500, {offset: {top: -50, left: 0}}); + $(element).highlightFade('yellow'); + window.location.hash = anchor; + } } } -- 2.20.1 From 92d8d582a4192c18d74c3f7dfb437683c62ca284 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 16:15:53 +0200 Subject: [PATCH 06/16] "Zobacz naszego bloga" -> "Zobacz nasz blog" --- wolnelektury/templates/catalogue/main_page.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wolnelektury/templates/catalogue/main_page.html b/wolnelektury/templates/catalogue/main_page.html index 641eb3102..76aeef2e1 100644 --- a/wolnelektury/templates/catalogue/main_page.html +++ b/wolnelektury/templates/catalogue/main_page.html @@ -249,7 +249,7 @@ {% cache 1800 latest-blog-posts %} {% latest_blog_posts "http://wolnepodreczniki.pl/feed/?s=Wolne%20Lektury" %} {% endcache %} -

Zobacz naszego bloga ⇒

+

Zobacz nasze blog ⇒

Możesz nam pomóc!

-- 2.20.1 From 3eb790b08844dc0dda1888584ae3fcce2c1274b1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 16:35:49 +0200 Subject: [PATCH 07/16] Removed unused import. --- apps/catalogue/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index a2bd34f63..e2e808f59 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -16,7 +16,6 @@ from django.utils import simplejson from django.utils.functional import Promise from django.utils.encoding import force_unicode from django.views.decorators import cache -from django.core.servers.basehttp import FileWrapper from catalogue import models from catalogue import forms -- 2.20.1 From 51f2aabd84f98911c5987c2044de6ed072fd6c5f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 17:02:50 +0200 Subject: [PATCH 08/16] Now searching for tag name which is a prefix of two or more tags doesn't result in server error. --- apps/catalogue/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/catalogue/urls.py b/apps/catalogue/urls.py index 1c52961fb..4910fc2da 100644 --- a/apps/catalogue/urls.py +++ b/apps/catalogue/urls.py @@ -16,6 +16,6 @@ urlpatterns = patterns('catalogue.views', # Public interface. Do not change this URLs. url(r'^lektura/(?P[a-zA-Z0-9-]+)\.html$', 'book_text', name='book_text'), url(r'^lektura/(?P[a-zA-Z0-9-]+)/$', 'book_detail', name='book_detail'), - url(r'^(?P[a-zA-Z0-9-/]+)/$', 'tagged_object_list', name='tagged_object_list'), + url(r'^(?P[a-zA-Z0-9-/]*)/$', 'tagged_object_list', name='tagged_object_list'), ) -- 2.20.1 From 2ca0264b141985f70fe1876b10fcb3539c598967 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 17:04:52 +0200 Subject: [PATCH 09/16] Now searching for tag name which is a prefix of two or more tags doesn't result in server error. --- apps/catalogue/models.py | 4 +++ apps/catalogue/views.py | 68 +++++++++++++++++++++------------------- 2 files changed, 39 insertions(+), 33 deletions(-) diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index 9640e7fd2..b6586763b 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -97,6 +97,10 @@ class Book(models.Model): tagged = managers.ModelTaggedItemManager(Tag) tags = managers.TagDescriptor(Tag) + @property + def name(self): + return self.title + def short_html(self): if len(self._short_html): return mark_safe(self._short_html) diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index e2e808f59..257d4727d 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -119,47 +119,49 @@ def book_text(request, slug): # ========== # = Search = # ========== -def search(request): - query = request.GET.get('q', '') - tags = request.GET.get('tags', '') - if tags == '': - tags = [] - - try: - tag_list = models.Tag.get_tag_list(tags) - tag = models.Tag.objects.get(name=query) - except models.Tag.DoesNotExist: - try: - book = models.Book.objects.get(title=query) - return HttpResponseRedirect(book.get_absolute_url()) - except models.Book.DoesNotExist: - return HttpResponseRedirect(reverse('catalogue.views.main_page')) +def _tags_starting_with(prefix, user): + books = models.Book.objects.filter(title__icontains=prefix) + tags = models.Tag.objects.filter(name__icontains=prefix) + if user.is_authenticated(): + tags = tags.filter(~Q(category='set') | Q(user=user)) else: - tag_list.append(tag) - return HttpResponseRedirect(reverse('catalogue.views.tagged_object_list', - kwargs={'tags': '/'.join(tag.slug for tag in tag_list)} - )) + tags = tags.filter(~Q(category='set')) + return list(books) + list(tags) + -def tags_starting_with(request): +def search(request): + tags = request.GET.get('tags', '') + prefix = request.GET.get('q', '') + # Prefix must have at least 2 characters + if len(prefix) < 2: + return HttpResponse('') + try: - prefix = request.GET['q'] - if len(prefix) < 2: - raise KeyError - - books = models.Book.objects.filter(title__icontains=prefix) - tags = models.Tag.objects.filter(name__icontains=prefix) - if request.user.is_authenticated(): - tags = tags.filter(~Q(category='set') | Q(user=request.user)) + tag_list = models.Tag.get_tag_list(tags) + except: + tag_list = [] + + result = _tags_starting_with(prefix, request.user) + if len(result) > 0: + tag = result[0] + if isinstance(tag, models.Book): + return HttpResponseRedirect(tag.get_absolute_url()) else: - tags = tags.filter(~Q(category='set')) - - completions = [book.title for book in books] + [tag.name for tag in tags] + tag_list.append(tag) + + return HttpResponseRedirect(reverse('catalogue.views.tagged_object_list', + kwargs={'tags': '/'.join(tag.slug for tag in tag_list)} + )) - return HttpResponse('\n'.join(completions)) - except KeyError: +def tags_starting_with(request): + prefix = request.GET['q'] + # Prefix must have at least 2 characters + if len(prefix) < 2: return HttpResponse('') + + return HttpResponse('\n'.join(tag.name for tag in _tags_starting_with(prefix, request.user))) # ==================== -- 2.20.1 From 4c93aaa7c94e4475ac6efbfeefbd747f1467b6ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 17:39:28 +0200 Subject: [PATCH 10/16] Added script to remove duplicated fragments. --- remove_duplicates.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 remove_duplicates.py diff --git a/remove_duplicates.py b/remove_duplicates.py new file mode 100755 index 000000000..e72512ba4 --- /dev/null +++ b/remove_duplicates.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +import sys + +from django.core.management import setup_environ +from wolnelektury import settings +try: + set +except AttributeError: + from set import Set as set + +setup_environ(settings) + +from catalogue import models + +fragment_identifiers = set() + +print +print 'Before: %d fragments' % models.Fragment.objects.count() +print + +for fragment in models.Fragment.objects.all(): + if (fragment.book_id, fragment.anchor) in fragment_identifiers: + fragment.delete() + sys.stderr.write('X') + else: + fragment_identifiers.add((fragment.book_id, fragment.anchor)) + sys.stderr.write('.') + +print +print 'After: %d fragments' % models.Fragment.objects.count() +print \ No newline at end of file -- 2.20.1 From 11099f8a5d8ffd220d1ee94eaadff8ff5be826e3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 17:45:56 +0200 Subject: [PATCH 11/16] Fixed description styles. --- wolnelektury/media/css/master.css | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/wolnelektury/media/css/master.css b/wolnelektury/media/css/master.css index 76bff57b6..ad53536ac 100644 --- a/wolnelektury/media/css/master.css +++ b/wolnelektury/media/css/master.css @@ -308,13 +308,19 @@ div.shown-tags p { #description .meta { margin: 0.5em; - width: 12em; + width: 18em; list-style: none; float: right; } #description dt { font-weight: bold; + display: inline; +} + +#description dd { + margin: 0; + display: inline; } #toggle-description, #tagged-object-list .pagination { -- 2.20.1 From cdf7839b638f11e89fdaf9d0797e40723f594a49 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 17:46:49 +0200 Subject: [PATCH 12/16] Now importing a book that already exists in our database doesn't duplicate it's fragments. --- apps/catalogue/models.py | 3 ++- wolnelektury/settings.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index b6586763b..133440b3b 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -202,7 +202,8 @@ class Book(models.Model): short_text = '' if (len(MarkupString(text)) > 240): short_text = unicode(MarkupString(text)[:160]) - new_fragment = Fragment(text=text, short_text=short_text, anchor=fragment.id, book=book) + new_fragment, created = Fragment.objects.get_or_create(anchor=fragment.id, book=book, + defaults={'text': text, 'short_text': short_text}) try: theme_names = [s.strip() for s in fragment.themes.split(',')] diff --git a/wolnelektury/settings.py b/wolnelektury/settings.py index 3afa9dd68..ab9a40ff5 100644 --- a/wolnelektury/settings.py +++ b/wolnelektury/settings.py @@ -77,8 +77,8 @@ MIDDLEWARE_CLASSES = [ ] # If DEBUG is enabled add query log to bottom of every template -# if DEBUG: -# MIDDLEWARE_CLASSES.append('middleware.ProfileMiddleware') +if DEBUG: + MIDDLEWARE_CLASSES.append('middleware.ProfileMiddleware') ROOT_URLCONF = 'urls' -- 2.20.1 From 170d4d705a5b3720d7e44296e50c6903a559e3ac Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 22 Sep 2008 21:15:18 +0200 Subject: [PATCH 13/16] Added admindocs application, previously ommited by mistake. --- wolnelektury/settings.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wolnelektury/settings.py b/wolnelektury/settings.py index ab9a40ff5..8b03f9c10 100644 --- a/wolnelektury/settings.py +++ b/wolnelektury/settings.py @@ -83,7 +83,7 @@ if DEBUG: ROOT_URLCONF = 'urls' TEMPLATE_DIRS = ( - PROJECT_DIR + '/templates/' + PROJECT_DIR + '/templates/', ) # CSS and JS files to compress @@ -126,6 +126,7 @@ INSTALLED_APPS = ( 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', + 'django.contrib.admindocs', 'newtagging', 'pagination', 'chunks', -- 2.20.1 From e1ca1ec8d77b79835f83bb8910cdd629e1cd3534 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Wed, 24 Sep 2008 10:39:22 +0200 Subject: [PATCH 14/16] Show children books in sets if they were explicitly added. --- apps/catalogue/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 257d4727d..f574c13fa 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -79,7 +79,7 @@ def tagged_object_list(request, tags=''): related_tags = models.Tag.objects.related_for_model(tags, model, counts=True, extra={'where': [extra_where]}) categories = split_tags(related_tags) - if not theme_is_set: + if not (theme_is_set or shelf_is_set): model=models.Book.objects.filter(parent=None) return newtagging_views.tagged_object_list( -- 2.20.1 From aec703e4334f431339fb60ab5cf773eed4cd03f7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Wed, 24 Sep 2008 10:49:57 +0200 Subject: [PATCH 15/16] Children book formats are added to ZIP archive for shelf. --- apps/catalogue/views.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index f574c13fa..b73552ed6 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -214,7 +214,18 @@ def download_shelf(request, slug): # Create a ZIP archive temp = temp = tempfile.TemporaryFile() archive = zipfile.ZipFile(temp, 'w') - for book in models.Book.tagged.with_all(shelf): + + # Collect all books to include in ZIP archive + def collect_books(books): + result = [] + for book in books: + if len(book.children.all()) == 0: + result.append(book) + else: + result += collect_books(book.children.all()) + return result + + for book in collect_books(models.Book.tagged.with_all(shelf)): if book.pdf_file: filename = book.pdf_file.path archive.write(filename, str('%s.pdf' % book.slug)) -- 2.20.1 From a652bbb45f118f38a3688680c527e31d726ed7a8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Wed, 24 Sep 2008 13:26:31 +0200 Subject: [PATCH 16/16] Fixed handling of wers_akap and wers_wciety tags, where the immediate predecessor were begin tag. --- lib/librarian/book2html.xslt | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/librarian/book2html.xslt b/lib/librarian/book2html.xslt index 03dfcec98..d16513127 100644 --- a/lib/librarian/book2html.xslt +++ b/lib/librarian/book2html.xslt @@ -1,7 +1,7 @@ - + @@ -315,23 +315,23 @@ - - + + - - + - - + + @@ -339,18 +339,25 @@ - - + +

- + padding-left: 1em - - padding-left: em + + + + padding-left: em + + + padding-left: 1em + + - +

-- 2.20.1