-custom: ['https://wolnelektury.pl/towarzystwo/', 'https://nowoczesnapolska.org.pl/pomoz-nam/darowizna/', 'https://nowoczesnapolska.org.pl/pomoz-nam/1-procent/']
+custom: ['https://wolnelektury.pl/pomagam/', 'https://fundacja.wolnelektury.pl/pomoz-nam/darowizna/', 'https://fundacja.wolnelektury.pl/pomoz-nam/1-procent/']
- FNP Wolnelektury
+ Wolne Lektury
- Copyright © 2008-2019 Fundacja Nowoczesna Polska <fundacja@nowoczesnapolska.org.pl>
+ Copyright © 2008-2023 Fundacja Wolne Lektury <fundacja@wolnelektury.pl>
For full list of contributors see README.md file.
![Wolne Lektury](src/wolnelektury/static/img/logo-bez.png)
+Wolne Lektury to wolna biblioteka internetowa. Udostępniamy wysokiej jakości
+książki — lektury szkolne i nie tylko — dzieciom i dorosłym w Polsce i na całym
+świecie. To ważne, ponieważ w 32% domów w Polsce nie ma ani jednej książki
+(dane Biblioteki Narodowej, 2022). Wyrównujemy szanse edukacyjne, w praktyce
+realizujemy wolność korzystania z dóbr kultury.
-Wolne Lektury is a free internet library maintained by Modern Poland Foundation.
-
-It's a service based on [Django](https://www.djangoproject.com/), using
-[Librarian](https://git.mdrn.pl/librarian.git) to publish books in various formats.
-
-
-License
--------
-
- ![AGPL Logo](http://www.gnu.org/graphics/agplv3-155x51.png)
-
- Copyright © 2008-2019 Fundacja Nowoczesna Polska <fundacja@nowoczesnapolska.org.pl>
-
- For full list of contributors see AUTHORS section at the end.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-Dependencies
-============
-
- * Python 3.5-3.7
- * All packages listed in requirements.txt
-
-
-How to deploy (development version)
-=============
-
-1. Checkout the source code from Git and enter the directory
-2. Install libraries (we recommend using pip):
-
- pip install -r requirements/requirements.txt
-
-3. Setup your local configuration in src/wolnelektury/localsettings.py. You need to generate a new SECRET_KEY, database stuff and domain related stuff.
-4. Populate database:
-
- ./manage.py migrate
-
-5. Run the server
-
- ./manage.py runserver
-
-
-6. Import some books which are available on http://www.wolnelektury.pl or on bitbucket mirror: http://bitbucket.org/lqc/wlbooks/
- If you use Bitbucket, you also need Mercurial to fetch books (you can install it using: pip install mercurial).
- After downloading books, log into administration, go to Books and choose 'Browse' to select book file,
- then fire 'Import book' to upload it. Some books have invalid XML, so you can get an error
- (just ignore it and look for other books).
-
-7. We provide localization of the software in following languages: Polish, Russian, German, English, Spanish, French and Lithuanian.
- Translation strings are based on gettext and can be found under 'locale' dir.
- There are also JavaScript files for jQuery countdown plugin (static/js/jquery.countdown-*.js).
-
-
-Bundled software
-================
-
-* django-chunks
- in `src/chunks`
- based on [django-chunks](http://code.google.com/p/django-chunks/)
- by Clint Ecker <clintecker@gmail.com>,
- [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
-* [django-newtagging](http://www.bitbucket.org/zuber/django-newtagging/)
- in `src/newtagging`
- by Marek Stępniowski <marek@stepniowski.com>,
- [MIT License](http://www.opensource.org/licenses/mit-license.php),
- based on [django-tagging](http://code.google.com/p/django-tagging/), also under [MIT License](http://www.opensource.org/licenses/mit-license.php)
-* [jPlayer](http://jplayer.org/)
- in `src/catalogue/static/jplayer`
- by Happyworm,
- [MIT License](http://opensource.org/licenses/MIT)
-* [Switch template tag](http://djangosnippets.org/snippets/967/)
- in `src/wolnelektury/templatetags/switch_tag.py`
- by adurdin
-* Javascript in `src/wolnelektury/static/js/contrib`
- with relevant attribution and licensing
-
-
-Authors
-=======
- * Marek Stępniowski <marek@stepniowski.com>
- * Łukasz Rekucki <lrekucki@gmail.com>
+Wszystkie dzieła są przez nas opracowane — uwspółcześniane, opatrzone
+przypisami, motywami, odniesieniami kontekstowymi — i udostępnione w kilku
+formatach do czytania online lub pobrania na własne urządzenie (HTML, TXT, PDF,
+EPUB, MOBI, FB2). Nagraliśmy i udostępniliśmy także ponad tysiąc audiobooków,
+czytanych przez wybitnych lektorów. Przygotowujemy je także w formatach
+z synchronizacją audio-tekst (DAISY i EPUB 3 MO).
+
+Jesteśmy częścią ruchu wolnego internetu, wolnej kultury i wolnego
+oprogramowania — zarówno nasze oprogramowanie, jak i treści, publikujemy
+wyłącznie na wolnych licencjach. Udostępniamy teksty z domeny publicznej,
+wykupujemy prawa do utworów współczesnych, a nawet zamawiamy i wydajemy
+[nowe tłumaczenia](https://wolnelektury.pl/katalog/lektury/nowe-tlumaczenia-wl/)
+takich klasyków jak Doktor Dolittle, Mały Książę, Inwazja jaszczurów, Rok 1984.
+
+
+Jak możesz pomóc?
+=================
+
+Wesprzyj nas
+------------
+
+Wolne Lektury nie mają stałego źródła finansowania.
+**[Wspieraj Wolne Lektury stałą wpłatą](https://wolnelektury.pl/pomagam/)** – nawet
+niewielkie, stałe wsparcie ma wielką moc! Możesz też wesprzeć Wolne Lektury jednorazowo.
+
+![1,5%](https://wolnelektury.pl/media/chunks/attachment/poltora-procent.png)
+
+Fundacja Wolne Lektury jest *Organizacją Pożytku Publicznego*. Dzięki temu możesz
+przekazać na bibliotekę 1,5% podatku, podając
+[KRS 0000070056](https://fundacja.wolnelektury.pl/pomoz-nam/1-procent/).
+Pamiętaj też, że swoje darowizny na Wolne Lektury możesz odliczyć od podstawy podatku!
+
+Pomóż w tłumaczeniu serwisu
+---------------------------
+
+Tłumaczenie interfejsu serwisu na inne języki jest przydatne zwłaszcza
+dla osób uczących się polskiego, imigrantów i dzieci polonijnych — możesz
+pomóc uzupełnić te tlumaczenia. Odbywa się to
+[w serwisie Weblate](https://hosted.weblate.org/engage/wolnelektury/).
+
+<a href="https://hosted.weblate.org/engage/wolnelektury/">
+<img src="https://hosted.weblate.org/widget/wolnelektury/287x66-grey.png" alt="Stan tłumaczenia" />
+</a>
+
+
+Pracuj jako fundraiser/fundraiserka
+-----------------------------------
+
+[Szukamy osób na stanowisko fundraisera](https://wolnelektury.pl/info/rekrutacja/).
+Praca polega na bezpośrednim kontakcie z potencjalnymi darczyńcami
+podczas festiwali muzycznych i kulturalnych.
+
+
+Włącz się w prace redakcyjne
+----------------------------
+
+Zobacz jak możesz włączyć się bezpośrednio
+w [prace redakcyjne](https://wolnelektury.pl/info/wlacz-sie-w-prace/).
+
+
+Prawa i autorzy
+===============
+
+Oprogramowanie jest dostępne na wolnej licencji GNU AGPL — dokładniejsze
+informacje znajdziesz w plikach NOTICE i LICENSE. Utrzymaniem oprogoramowania
+w ramach Fundacji Wolne Lektury zajmuje się Radek Czajka.
+
+Pełna lista dotychczasowych autorów:
+
+ * Marek Stępniowski
+ * Łukasz Rekucki
* Radek Czajka
* Łukasz Anwajler
* Marcin Koziej
sorl-thumbnail==12.8.0
# home-brewed & dependencies
-librarian==2.6.1
+librarian==24.4.1
# celery tasks
celery[redis]==5.2.7
#!/usr/bin/env python
# -*- 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.
#
import os
import django
-# 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.
#
"""
Provides a way to create forms behaving correctly as AJAX forms
-# 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 functools import wraps
import json
file_format = models.CharField(max_length=8, choices=[
('epub', 'epub'),
('mobi', 'mobi'),
+ ('pdf', 'pdf'),
])
etag = models.CharField(max_length=64, blank=True)
e.preventDefault();
$target.slideDown('fast');
$on.hide();
- if (Modernizr.localstorage) localStorage.removeItem(tag);
+ localStorage.removeItem(tag);
_paq.push(['trackEvent', 'banner', 'banner-unhide', $target.attr('id')]);
});
$off.click(function() {
$target.slideUp('fast');
$on.show();
- if (Modernizr.localstorage) localStorage[tag] = true;
+ localStorage[tag] = true;
_paq.push(['trackEvent', 'banner', 'banner-hide', $target.attr('id')]);
});
- if (Modernizr.localstorage) {
- if (!localStorage[tag]) {
- $on.hide();
- $target.show();
- _paq.push(['trackEvent', 'banner', 'banner-show', $target.attr('id')]);
- }
+ if (!localStorage[tag]) {
+ $on.hide();
+ $target.show();
+ _paq.push(['trackEvent', 'banner', 'banner-show', $target.attr('id')]);
}
});
--- /dev/null
+{% if banner %}
+ {% if closable %}
+ <a class='annoy-banner-on annoy-banner-on_{{ banner.place }}'
+ href="{{ banner.url }}"
+ data-target="#annoy-banner-{{ banner.id }}"
+ >
+ </a>
+ {% endif %}
+ <div class="
+ annoy-banner
+ annoy-banner_{{ banner.place }}
+ annoy-banner-style_{{ banner.style }}
+ {% if banner.image %}with-image{% endif %}
+ {% if banner.smallfont %}banner-smallfont{% endif %}
+ "
+ id="annoy-banner-{{ banner.id }}"
+ style="
+ {% if banner.text_color %}color: {{ banner.text_color }};{% endif %}
+ {% if banner.background_color %}background-color: {{ banner.background_color }};{% endif %}
+ ">
+ <div class="annoy-banner-inner">
+
+ <div class="text">
+ {{ banner.get_text|safe|linebreaks }}
+ <div class="annoy-banner_actions">
+ <a class="action l-button l-button--default l-button--default--dark" href="{{ banner.url }}">
+ {{ banner.action_label }}
+ </a>
+ <a class='annoy-banner-off annoy-banner-off_{{ banner.place }} l-button l-button--default'>{{ banner.close_label|default:"x" }}</a>
+ </div>
+ </div>
+ {% if banner.image %}
+ <div class="annoy-banner_img">
+ <img src="{{ banner.image.url }}">
+ </div>
+ {% endif %}
+ </div>
+ </div>
+
+{% endif %}
'closable': PLACES.get(place, False),
}
+@register.inclusion_tag('annoy/banner_blackout.html', takes_context=True)
+def annoy_banner_blackout(context):
+ banners = Banner.choice('blackout', request=context['request'])
+ return {
+ 'banner': banners.first(),
+ 'closable': True,
+ }
+
@register.inclusion_tag('annoy/banners.html', takes_context=True)
def annoy_banners(context, place):
-# 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 modeltranslation.translator import translator, TranslationOptions
from . import models
-# 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.contrib import admin
from . import models
-# 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 oauthlib.oauth1 import ResourceEndpoint
from rest_framework.authentication import BaseAuthentication
-# 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 rest_framework import serializers
from sorl.thumbnail import default
-# 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.contrib.sites.models import Site
from django.utils.functional import lazy
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.
#
import datetime
from django.db import migrations, models
-# 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.conf import settings
from django.db import migrations, models
-# 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.conf import settings
from django.contrib.auth.models import User
-# 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 rest_framework_xml.renderers import XMLRenderer
-# 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.
#
import time
from oauthlib.oauth1 import RequestValidator
-# 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.contrib.auth.models import User
from rest_framework import serializers
-# 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 base64 import b64encode
import hashlib
-# 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.urls import path, include
from django.views.decorators.csrf import csrf_exempt
-# 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.http import HttpResponse, HttpResponseRedirect
from django.utils.decorators import method_decorator
-# 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.contrib.auth.decorators import login_required
from django import forms
-# 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.
#
import logging
from django.conf import settings
-# 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.contrib import admin
from catalogue.models import Tag, Book, Fragment, BookMedia, Collection, Source, Snippet
-# 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 rest_framework import serializers
from api.fields import AbsoluteURLField
-# 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.db.models import Q
from catalogue.models import Book
-# 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 rest_framework import serializers
from api.fields import AbsoluteURLField, LegacyMixin, ThumbnailField
-# 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.urls import path, re_path
from stats.utils import piwik_track_view
-# 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.
#
import json
import os.path
-# 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.apps import AppConfig
-# 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.utils.translation import gettext_lazy as _
-# 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.contrib.sites.models import Site
from django.contrib.syndication.views import Feed
-# 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.
#
+import io
import os
import pkg_resources
import random
+import time
+from urllib.request import urlopen
from django.apps import apps
from django.conf import settings
from django.core.files import File
from django.db import models
from django.db.models.fields.files import FieldFile
from django.utils.deconstruct import deconstructible
+from librarian.cover import make_cover
from catalogue.constants import LANGUAGES_3TO2
from catalogue.utils import absolute_url, remove_zip, truncate_html_words, gallery_path, gallery_url
from waiter.utils import clear_cache
return isinstance(other, type(self)) and other.path == self.path
+def get_make_cover(book):
+ extra = book.get_extra_info_json()
+ cover_logo = extra.get('logo_mono', extra.get('logo'))
+ if cover_logo:
+ while True:
+ try:
+ cover_logo = io.BytesIO(urlopen(cover_logo, timeout=3).read())
+ except:
+ time.sleep(2)
+ else:
+ break
+
+ def mc(*args, **kwargs):
+ if cover_logo:
+ kwargs['cover_logo'] = cover_logo
+ return make_cover(*args, **kwargs)
+ return mc
+
+
class EbookFieldFile(FieldFile):
"""Represents contents of an ebook file field."""
return found
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
"""Transforms an librarian.WLDocument into an librarian.OutputFile.
"""
raise NotImplemented()
book = fieldfile.instance
out = self.transform(
book.wldocument2() if self.librarian2_api else book.wldocument(),
+ book,
)
with open(out.get_filename(), 'rb') as f:
fieldfile.save(None, File(f), save=False)
for_parents = False
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
return wldoc.as_text()
ZIP = 'wolnelektury_pl_fb2'
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
return wldoc.as_fb2()
ZIP = 'wolnelektury_pl_pdf'
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
+ MediaInsertSet = apps.get_model('annoy', 'MediaInsertSet')
return wldoc.as_pdf(
- morefloats=settings.LIBRARIAN_PDF_MOREFLOATS, cover=True,
- base_url=absolute_url(gallery_url(wldoc.book_info.url.slug)), customizations=['notoc'])
+ morefloats=settings.LIBRARIAN_PDF_MOREFLOATS,
+ cover=get_make_cover(book),
+ base_url=absolute_url(gallery_url(wldoc.book_info.url.slug)), customizations=['notoc'],
+ fundraising=MediaInsertSet.get_texts_for('pdf'),
+ )
def build(self, fieldfile):
super().build(fieldfile)
ZIP = 'wolnelektury_pl_epub'
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
from librarian.builders import EpubBuilder
MediaInsertSet = apps.get_model('annoy', 'MediaInsertSet')
return EpubBuilder(
base_url='file://' + os.path.abspath(gallery_path(wldoc.meta.url.slug)) + '/',
- fundraising=MediaInsertSet.get_texts_for('epub')
+ fundraising=MediaInsertSet.get_texts_for('epub'),
+ cover=get_make_cover(book),
).build(wldoc)
ZIP = 'wolnelektury_pl_mobi'
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
from librarian.builders import MobiBuilder
MediaInsertSet = apps.get_model('annoy', 'MediaInsertSet')
return MobiBuilder(
base_url='file://' + os.path.abspath(gallery_path(wldoc.meta.url.slug)) + '/',
- fundraising=MediaInsertSet.get_texts_for('mobi')
+ fundraising=MediaInsertSet.get_texts_for('mobi'),
+ cover=get_make_cover(book),
).build(wldoc)
book = fieldfile.instance
- html_output = self.transform(book.wldocument(parse_dublincore=False))
+ html_output = self.transform(book.wldocument(parse_dublincore=False), book)
# Delete old fragments, create from scratch if necessary.
book.fragments.all().delete()
return False
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
# ugly, but we can't use wldoc.book_info here
from librarian import DCNS
url_elem = wldoc.edoc.getroot().find('.//' + DCNS('identifier.url'))
directory = 'cover'
@staticmethod
- def transform(wldoc):
- return wldoc.as_cover()
+ def transform(wldoc, book):
+ return get_make_cover(book)(wldoc.book_info, width=360).output_file()
def set_file_permissions(self, fieldfile):
pass
directory = 'cover_clean'
@staticmethod
- def transform(wldoc):
- from librarian.covers.marquise import MarquiseCover
- return MarquiseCover(wldoc.book_info, width=360).output_file()
+ def transform(wldoc, book):
+ return get_make_cover(book)(wldoc.book_info, width=360).output_file()
class CoverThumbField(CoverField):
directory = 'cover_thumb'
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
from librarian.cover import WLCover
return WLCover(wldoc.book_info, height=193).output_file()
directory = 'cover_api_thumb'
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
from librarian.cover import WLNoBoxCover
return WLNoBoxCover(wldoc.book_info, height=500).output_file()
directory = 'cover_simple'
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
from librarian.cover import WLNoBoxCover
return WLNoBoxCover(wldoc.book_info, height=1000).output_file()
directory = 'cover_ebookpoint'
@staticmethod
- def transform(wldoc):
+ def transform(wldoc, book):
from librarian.cover import EbookpointCover
return EbookpointCover(wldoc.book_info).output_file()
-# 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 gettext_lazy as _
gallery_url = forms.CharField(required=False)
days = forms.IntegerField(required=False)
hidden = forms.BooleanField(required=False)
+ logo = forms.CharField(required=False)
+ logo_mono = forms.CharField(required=False)
+ logo_alt = forms.CharField(required=False)
def clean(self):
from django.core.files.base import ContentFile
remote_gallery_url=self.cleaned_data['gallery_url'],
days=self.cleaned_data['days'],
findable=not self.cleaned_data['hidden'],
+ logo=self.cleaned_data['logo'],
+ logo_mono=self.cleaned_data['logo_mono'],
+ logo_alt=self.cleaned_data['logo_alt'],
**kwargs)
-# 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.conf import settings
from django.contrib.contenttypes.models import ContentType
-# 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 librarian import DocProvider
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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 time import time
from django.conf import settings
-# 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.contrib.sites.models import Site
from django.core.management.base import BaseCommand
-# 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.core.management.base import BaseCommand
from librarian import ParseError
-# 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.core.management.base import BaseCommand
-# 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.
#
import os
import sys
-# 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.core.management.base import BaseCommand
-# 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.
#
import zipfile
from django.core.management.base import BaseCommand
-# 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.core.management.base import BaseCommand
-# 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.conf import settings
from django.core.management.base import BaseCommand
-# 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.core.management.base import BaseCommand
from django.db.models import Count
-# 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 datetime import date
from django.core.management.base import BaseCommand
-# 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.core.management import BaseCommand
from catalogue.models import Tag
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import models, migrations
-# 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.db import migrations
-# 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.db import models, migrations
-# 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.db import models, migrations
-# 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.db import models, migrations
-# 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.db import models, migrations
-# 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.db import migrations, models
import catalogue.fields
-# 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.db import migrations, models
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
import fnpdjango.storage
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
import catalogue.fields
-# 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.db import migrations, models
import catalogue.fields
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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 catalogue.models.tag import Tag
from catalogue.models.bookmedia import BookMedia
-# 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 collections import OrderedDict
import json
total += app_settings.GET_MP3_LENGTH(media.file.path)
return int(total)
+ def get_time(self):
+ return round(self.xml_file.size / 1000 * 40)
+
def has_media(self, type_):
if type_ in Book.formats:
return bool(getattr(self, "%s_file" % type_))
@classmethod
def from_text_and_meta(cls, raw_file, book_info, overwrite=False, dont_build=None, search_index=True,
- remote_gallery_url=None, days=0, findable=True):
+ remote_gallery_url=None, days=0, findable=True, logo=None, logo_mono=None, logo_alt=None):
from catalogue import tasks
if dont_build is None:
book.common_slug = book_info.variant_of.slug
else:
book.common_slug = book.slug
- book.extra_info = json.dumps(book_info.to_dict())
+ extra = book_info.to_dict()
+ if logo:
+ extra['logo'] = logo
+ if logo_mono:
+ extra['logo_mono'] = logo_mono
+ if logo_alt:
+ extra['logo_alt'] = logo_alt
+ book.extra_info = json.dumps(extra)
book.load_abstract()
book.load_toc()
book.save()
else:
entity, entity_created = Entity.objects.get_or_create(uri=uri)
if entity_created:
- entity.populate()
- entity.save()
+ try:
+ entity.populate()
+ except:
+ pass
+ else:
+ entity.save()
ref, ref_created = entity.reference_set.get_or_create(book=self)
refs[uri] = ref
if not ref_created:
-# 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 collections import OrderedDict
import json
-# 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.conf import settings
from django.db import models
-# 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.conf import settings
from django.contrib.contenttypes.fields import GenericRelation
-# 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.db import models
-# 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.conf import settings
from django.contrib.contenttypes.fields import GenericForeignKey
-# 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.conf import settings
from django.core.cache import caches
-# 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 traceback import print_exc
from celery import shared_task
{% load i18n %}
{% load catalogue_tags %}
+{% load thumbnail %}
{% with extra_info=book.get_extra_info_json %}
<p>
<p>{{ extra_info.description }}</p>
{% endif %}
+ {% if extra_info.logo %}
+ {% thumbnail extra_info.logo '300x200' as th %}
+ <img src="{{ th.url }}" style="width: 300px; max-width: 100%;"
+ alt="{{ extra_info.logo_alt|default:'Sponsor' }}"
+ >
+ {% endthumbnail %}
+ {% endif %}
+
{% if extra_info.editor or extra_info.technical_editor %}
<p>
{% if is_picture %}
-{% extends "catalogue/viewer_base.html" %}
+{% extends "base.html" %}
+
+
{% load i18n l10n %}
{% load catalogue_tags %}
{% load chunks %}
{% load thumbnail %}
+{% load static %}
{% load annoy_banners from annoy %}
crossorigin=""></script>
{% endblock %}
+
{% block menu %}
<li>
<a href="{{ book.get_absolute_url }}" id="menu-book" data-box="book-short">
</li>
{% endif %}
- <li id="menu-toc">
- <a href="#" data-box="wltoc">
- <span class="label">{% trans "Spis treści" %}</span>
- </a>
- </li>
+ {% if extra_info.logo_mono %}
+ {% thumbnail extra_info.logo_mono '200x200' as th %}
+ <img src="{{ th.url }}" style="width: 100px; padding: 10px;"
+ alt="{{ extra_info.logo_alt|default:'Sponsor' }}"
+ >
+ {% endthumbnail %}
+ {% endif %}
+
- <li id="menu-themes">
- <a href="#" data-box="themes">
- <span class="label">{% trans "Motywy" %}</span>
+
+{% endblock menu %}
+
+
+
+{% block breadcrumb-right %}
+ <div class="l-text_toolbar" id="menu">
+ <a href="#info" data-box="info">
+ <img src="{% static '2022/images/about.svg' %}" alt="{% trans "Informacje" %}">
</a>
- </li>
- <li id="menu-nota_red">
- <a href="#" data-box="nota_red">
- <span class="label">{% trans "Nota red." %}</span>
+ <a href="#" data-box="settings" style="display: none;">
+ <img src="{% static '2022/images/settings.svg' %}" alt="{% trans "Ustawienia" %}">
</a>
- </li>
- <li id="menu-info">
- <a href="#info" data-box="info">
- <span class="label">{% trans "Informacje" %}</span>
+ <a href="#wltoc" data-box="wltoc" style="display: none;">
+ <img src="{% static '2022/images/toc.svg' %}" alt="{% trans "Spis treści" %}">
</a>
- </li>
- <a href="#" class="settings-switch" id="settings-line-numbers"
- data-setting="always-hide-line-numbers"><span>{% trans "Numeracja" %}</span></a>
- <a href="#" class="settings-switch" id="settings-themes"
- data-setting="always-hide-themes"><span>{% trans "Motywy" %}</span></a>
- <a href="#" class="settings-switch" id="settings-annotations"
- data-setting="no-annotations"><span>{% trans "Przypisy" %}</span></a>
- <a href="#" class="settings-switch" id="settings-references"
- data-setting="no-references"><span>{% trans "Pinezki" %}</span></a>
-{% endblock menu %}
-{% block big-pane %}
+ <div id="info" class="box">
+ {% book_info book %}
+ </div>
+
+
+ <div id="settings" class="box">
+ <a href="#" class="settings-switch" id="settings-line-numbers"
+ data-setting="always-hide-line-numbers"><span>{% trans "Numeracja" %}</span></a>
+ <a href="#" class="settings-switch" id="settings-themes"
+ data-setting="always-hide-themes"><span>{% trans "Motywy" %}</span></a>
+ <a href="#" class="settings-switch" id="settings-annotations"
+ data-setting="no-annotations"><span>{% trans "Przypisy" %}</span></a>
+ <a href="#" class="settings-switch" id="settings-references"
+ data-setting="no-references"><span>{% trans "Pinezki" %}</span></a>
+ </div>
+
+
+ <div id="wltoc" class="box">
+ {% if book.parent %}
+ {% for b in book.ancestors %}
+ {% if forloop.counter > 1 %}
+ <li>
+ {% endif %}
+ <a href="{% if b.html_file %}{% url 'book_text' b.slug %}{% else %}{{ b.get_absolute_url }}{% endif %}">{{ b.title }}</a>
+ <ol>
+ {% endfor %}
+ {% for b in book.get_siblings %}
+ <li>
+ {% if b == book %}
+ <strong>{{ b.title }}</strong>
+ <div id="heretoc"></div>
+ {% else %}
+ <a href="{% url 'book_text' b.get_first_text.slug %}">{{ b.title }}</a>
+ {% endif %}
+ </li>
+ {% endfor %}
+
+ {% for b in book.ancestor.all %}
+ </ol>
+ {% if not forloop.counter.last %}
+ </li>
+ {% endif %}
+ {% endfor %}
+ {% else %}
+ <strong>{{ book.title }}</strong>
+ <div id="heretoc"></div>
+ <ol>
+ {% for c in book.get_children %}
+ <li><a href="{% url 'book_text' c.get_first_text.slug %}">{{ c.title }}</a></li>
+ {% endfor %}
+ </ol>
+ {% endif %}
+ </div>
+
+ </div>
+{% endblock %}
+
+
+
+
+{% block main %}
+ <div id="global-progress" class="l-container" data-t="{{ book.get_time }}">
+ <div class="bar">
+ <span class="piece" style="flex-grow: 100;">
+ <span class="filled"></span>
+ </span>
+ </div>
+ <div class="progress-text">
+ Szacowany czas do końca: <span class="progress-text-value">-</span>
+ </div>
+ </div>
+
+ <header class="l-text_header">
+ <img class="l-text_header_cover" src="{% if book.cover_clean %}{{ book.cover_clean.url }}{% endif %}" alt="{{ book.pretty_title }}">
+
+ <div class="l-text_header__content">
+ <p class="l-text_header_author">{% for author in book.authors %}<a href="{{ author.get_absolute_url }}">{{ author.name }}</a>{% if not forloop.last %}, {% endif %}{% endfor %}
+ </p>
+ <h1 class="l-text_header_title"><a href="{{ book.get_absolute_url }}">{{ book.title }}</a></h1>
+ {% with translators=book.translators %}
+ {% if translators %}
+ <p class="l-header__translators">
+ {% if translators.0 != 'tłumacz nieznany' %}
+ {% trans "tłum." %}
+ {% endif %}
+ {% for translator in translators %}
+ {{ translator }}{% if not forloop.last %}, {% endif %}
+ {% endfor %}
+ </p>
+ {% endif %}
+ {% endwith %}
+ <div style="margin-top:1em;">
+ {% content_warning book %}
+ </div>
+
+ </div>
+ </header>
+
<article id="main-text">
{% with next=book.get_next_text prev=book.get_prev_text %}
{% if next %}
- <a style="float:right; padding: 1em;" href="{% url 'book_text' next.slug %}">{{ next.title }} →</a>
+ <a class="text_next-book" href="{% url 'book_text' next.slug %}">{{ next.title }} →</a>
{% endif %}
{% if prev %}
- <a style="display:inline-block;padding: 1em;" href="{% url 'book_text' prev.slug %}">← {{ prev.title }}</a>
+ <a class="text_prev-book" href="{% url 'book_text' prev.slug %}">← {{ prev.title }}</a>
{% endif %}
- <div style="text-align:center; margin-top:1em;">
- {% content_warning book %}
- </div>
- <div style="clear:both;"></div>
{{ book_text|safe }}
{% endwith %}
- </article>
- <article id="other-text">
- <a class="other-text-close" href="#">{% trans "Zamknij" %}</a>
- <div id="other-text-waiter">{% trans "Proszę czekać..." %}</div>
- <div id="other-text-body" style="display: none;"></div>
- </article>
- <div id="reference-box">
- <div id="reference-map"></div>
- <a id="reference-close" href="#">x</a>
- <div id="reference-images">
+
+
+ <article id="other-text">
+ <a class="other-text-close" href="#">{% trans "Zamknij" %}</a>
+ <div id="other-text-waiter">{% trans "Proszę czekać..." %}</div>
+ <div id="other-text-body" style="display: none;"></div>
+ </article>
+
+ <div id="reference-box">
+ <div id="reference-map"></div>
+ <a id="reference-close" href="#">x</a>
+ <div id="reference-images">
+ </div>
+ <a id="reference-link" target="_blank"></a>
</div>
- <a id="reference-link" target="_blank"></a>
- </div>
+ {% if book.other_versions.exists %}
+ <div class="box" id="other">
+ <h2>{% trans "Inne wersje utworu" %}</h2>
+ <a class="other-text-close" href="#">{% trans "Zamknij drugą wersję" %}</a>
+ <ul>
+ {% spaceless %}
+ {% for other_version in book.other_versions %}
+ <li>
+ <a class="display-other"
+ data-other="{{ other_version.html_url }}"
+ href="{% url 'book_text' other_version.slug %}">
+ {{ other_version.mini_box_nolink }}
+ </a>
+ </li>
+ {% endfor %}
+ {% endspaceless %}
+ </ul>
+ </div>
+ {% endif %}
+
+ <div id="annoy-stubs">
+ {% annoy_banners 'book-text-intermission' %}
+
+ {% for insert in inserts %}
+ {% include 'annoy/dynamic_insert.html' %}
+ {% endfor %}
+ </div>
+
+ </article>
-{% endblock big-pane %}
-{% block footer %}
{% if book.has_sync_file %}
<div id="player-bar">
{% include 'catalogue/snippets/jplayer_reader.html' %}
{{ book.get_sync|safe }}
</script>
{% endif %}
- <div id="wltoc" class="box">
- {% if book.parent %}
- {% for b in book.ancestors %}
- {% if forloop.counter > 1 %}
- <li>
- {% endif %}
- <a href="{% if b.html_file %}{% url 'book_text' b.slug %}{% else %}{{ b.get_absolute_url }}{% endif %}">{{ b.title }}</a>
- <ol>
- {% endfor %}
- {% for b in book.get_siblings %}
- <li>
- {% if b == book %}
- <strong>{{ b.title }}</strong>
- <div id="heretoc"></div>
- {% else %}
- <a href="{% url 'book_text' b.get_first_text.slug %}">{{ b.title }}</a>
- {% endif %}
- </li>
- {% endfor %}
-
- {% for b in book.ancestor.all %}
- </ol>
- {% if not forloop.counter.last %}
- </li>
- {% endif %}
- {% endfor %}
- {% else %}
- <strong>{{ book.title }}</strong>
- <div id="heretoc"></div>
- <ol>
- {% for c in book.get_children %}
- <li><a href="{% url 'book_text' c.get_first_text.slug %}">{{ c.title }}</a></li>
- {% endfor %}
- </ol>
- {% endif %}
- </div>
-
- <div id="info" class="box">
- {% book_info book %}
- </div>
-
- {% if book.other_versions.exists %}
- <div class="box" id="other">
- <h2>{% trans "Inne wersje utworu" %}</h2>
- <a class="other-text-close" href="#">{% trans "Zamknij drugą wersję" %}</a>
- <ul>
- {% spaceless %}
- {% for other_version in book.other_versions %}
- <li>
- <a class="display-other"
- data-other="{{ other_version.html_url }}"
- href="{% url 'book_text' other_version.slug %}">
- {{ other_version.mini_box_nolink }}
- </a>
- </li>
- {% endfor %}
- {% endspaceless %}
- </ul>
- </div>
- {% endif %}
-
- <div class="box" id="book-short">
- {% include 'catalogue/book_short.html' %}
- </div>
-
- <div id="annoy-stubs">
- {% annoy_banners 'book-text-intermission' %}
-
- {% for insert in inserts %}
- {% include 'annoy/dynamic_insert.html' %}
- {% endfor %}
- </div>
<div id="marker">
</script>
{% endlocalize %}
-{% endblock footer %}
+
+{% endblock main %}
</div>
<div class="l-navigation__menu__book__info">
<h3>
- <a href="{{ book.get_absolute_url }}" tabindex="-1">
- <img src="{{ book.cover_clean.url }}" alt="{{ book.pretty_title }}">
- </a>
+ {% if book.cover_clean %}
+ <a href="{{ book.get_absolute_url }}" tabindex="-1">
+ <img src="{{ book.cover_clean.url }}" alt="{{ book.pretty_title }}">
+ </a>
+ {% endif %}
<a href="{{ book.get_absolute_url }}" tabindex="-1">
{% for author in book.authors %}
{{ author }}
<h3>{% trans "Prapremiera" %}</h3>
<div class="p-homepage-prapremiera__box">
<div class="p-homepage-prapremiera__box__item">
+ {% if book.cover_clean %}
<figure>
<a href="{{ book.get_absolute_url }}">
<img src="{{ book.cover_clean.url }}" alt="{{ book.pretty_title }}">
</a>
</figure>
+ {% endif %}
<div class="p-homepage-prapremiera__box__content">
<h4>
{% for author in book.authors %}
{% load static from static %}
{% load pipeline %}
{% load piwik_tags %}
-{% load annoy_banner from annoy %}
+{% load annoy %}
<html class="no-js {% if VARIANT %}{{ VARIANT }}{% endif %}">
<head>
<meta charset="utf-8">
{% tracking_code %}
</head>
<body id="{% block body-id %}reader{% endblock %}">
- {% annoy_banner 'blackout' %}
{% annoy_banner 'top' %}
<nav id="no-menu"><ul>
<li><a href="#" id="menu-toggle-on"></a></li>
-# 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 random import randint, random
from urllib.parse import urlparse
-# 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 os.path import abspath, dirname, join
import tempfile
-# 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.core.files.base import ContentFile
from catalogue.test_utils import *
-# 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 os.path import basename, exists
from unittest import skip
-# 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.core.files.base import ContentFile
from catalogue.test_utils import BookInfoStub, PersonStub, info_args, WLTestCase
-# 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 unittest import skip
-# 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 catalogue import models
from catalogue.templatetags import catalogue_tags
-# 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 catalogue import models
from catalogue.test_utils import BookInfoStub, PersonStub, WLTestCase, info_args
-# 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 modeltranslation.translator import translator, TranslationOptions
-# 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.urls import path, re_path
from django.db.models import Max
-# 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.
#
import hashlib
import os.path
-# 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 collections import OrderedDict
import random
return render(request, 'catalogue/book_text.html', {
'book': book,
+ 'extra_info': book.get_extra_info_json(),
'book_text': book_text,
'inserts': DynamicTextInsert.get_all(request)
})
-# 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.contrib import admin
from django import forms
-# 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.db import models, migrations
-# 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.db import models, migrations
-# 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.db import migrations, models
-# 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.conf import settings
from django.core.cache import cache
-# 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 template
from django.core.cache import cache
-# 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 modeltranslation.translator import translator, TranslationOptions
-# 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.urls import path
from . import views
-# 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.
#
import json
from django.contrib import admin
-# 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.apps import AppConfig
-# 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 decimal import Decimal
from django import forms
-# 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.utils.timezone import now
from .models import Schedule
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.
#
import json
from django.core.management.base import BaseCommand
-# 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 datetime import timedelta
import traceback
-# 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 datetime import timedelta
import traceback
-# 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.conf import settings
from django.db import migrations, models
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.db import migrations
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
--- /dev/null
+# Generated by Django 4.0.8 on 2024-01-31 07:41
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('club', '0044_alter_ambassador_options_alter_club_options_and_more'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='payuorder',
+ name='pos_id',
+ field=models.CharField(blank=True, max_length=255, verbose_name='POS id'),
+ ),
+ ]
-# 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 datetime import datetime, timedelta
from decimal import Decimal
-# 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 hashlib import sha256
from django.conf import settings
-# 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.conf import settings
from .pos import POS
-# 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
-# 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.
#
import json
from urllib.parse import urlencode
class Order(models.Model):
- pos_id = models.CharField('POS id', max_length=255) # TODO: redundant?
+ pos_id = models.CharField('POS id', max_length=255, blank=True) # TODO: redundant?
customer_ip = models.GenericIPAddressField('adres IP klienta')
order_id = models.CharField('ID zamówienia', max_length=255, blank=True)
-# 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.
#
import requests
-# 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.contrib.staticfiles.testing import StaticLiveServerTestCase
from selenium.webdriver.firefox.webdriver import WebDriver
-# 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 hashlib import md5, sha256
from django.conf import settings
-# 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 rest_framework.permissions import BasePermission
from .models import Membership
Paulina Choromańska i Jarosław Lipszyc
w imieniu całego zespołu Wolnych Lektur
-PS W grudniu 2022 r. zmieniliśmy nazwę fundacji z „Nowoczesna Polska” na „Wolne Lektury”. Numer KRS pozostał bez zmian. W żaden sposób nie wpływa to na Twoje prawa. Możesz odliczyć całą kwotę darowizm niezależnie od nazwy na przelewie.
-
Administratorem danych osobowych jest fundacja Wolne Lektury (ul. Marszałkowska 84/92 lok. 125, 00-514 Warszawa). Podanie danych osobowych jest dobrowolne. Dane są przetwarzane w zakresie niezbędnym do wysyłania informacji darczyńcom Wolnych Lektur. Osobom, których dane są zbierane, przysługuje prawo dostępu do treści swoich danych oraz ich poprawiania. Więcej informacji w polityce prywatności (https://fundacja.wolnelektury.pl/prywatnosc/).
-# 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 datetime import timedelta
from django.db.models import Sum
-# 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 modeltranslation.translator import translator, TranslationOptions
-# 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.urls import path
from django.views.generic import RedirectView
-# 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.conf import settings
from django.contrib.auth.decorators import login_required, permission_required
-# 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.html import conditional_escape
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.forms.utils import flatatt
-# 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.utils.translation import gettext_lazy as _
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import models, migrations
-# 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.db import migrations, models
-# 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.db import models, transaction
from celery import shared_task
-# 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 template
from django.utils.http import urlencode
-# 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.core.files.base import ContentFile
from catalogue.test_utils import *
-# 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.urls import path
from dictionary.views import NotesView
-# 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.views.generic.list import ListView
from django.conf import settings
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.conf import settings as settings
from catalogue.utils import AppSettings
-# 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.contrib import admin
from modeltranslation.admin import TranslationAdmin
model = Spent
list_display = ['book', 'amount', 'timestamp']
search_fields = ['book__title']
+ autocomplete_fields = ['book']
admin.site.register(Offer, OfferAdmin)
-# 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 import formats
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
msgstr ""
#: funding/templates/funding/offer_detail.html:15
+#: funding/templates/funding/offer_list.html:7
msgid "Zbiórki"
msgstr ""
msgid "Wpłaty"
msgstr ""
-#: funding/templates/funding/offer_list.html:15
+#: funding/templates/funding/offer_list.html:17
msgid "filtry, tytuł"
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
"or try to use a different payment method."
#: funding/templates/funding/offer_detail.html:15
+#: funding/templates/funding/offer_list.html:7
msgid "Zbiórki"
msgstr "Fundraisers"
msgid "Wpłaty"
msgstr ""
-#: funding/templates/funding/offer_list.html:15
+#: funding/templates/funding/offer_list.html:17
msgid "filtry, tytuł"
msgstr "filters, title"
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
msgstr ""
#: funding/templates/funding/offer_detail.html:15
+#: funding/templates/funding/offer_list.html:7
msgid "Zbiórki"
msgstr ""
msgid "Wpłaty"
msgstr ""
-#: funding/templates/funding/offer_list.html:15
+#: funding/templates/funding/offer_list.html:17
msgid "filtry, tytuł"
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
msgstr ""
#: funding/templates/funding/offer_detail.html:15
+#: funding/templates/funding/offer_list.html:7
msgid "Zbiórki"
msgstr ""
msgid "Wpłaty"
msgstr ""
-#: funding/templates/funding/offer_list.html:15
+#: funding/templates/funding/offer_list.html:17
msgid "filtry, tytuł"
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
msgstr ""
#: funding/templates/funding/offer_detail.html:15
+#: funding/templates/funding/offer_list.html:7
msgid "Zbiórki"
msgstr ""
msgid "Wpłaty"
msgstr ""
-#: funding/templates/funding/offer_list.html:15
+#: funding/templates/funding/offer_list.html:17
msgid "filtry, tytuł"
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
msgstr ""
#: funding/templates/funding/offer_detail.html:15
+#: funding/templates/funding/offer_list.html:7
msgid "Zbiórki"
msgstr ""
msgid "Wpłaty"
msgstr ""
-#: funding/templates/funding/offer_list.html:15
+#: funding/templates/funding/offer_list.html:17
msgid "filtry, tytuł"
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
msgstr ""
#: funding/templates/funding/offer_detail.html:15
+#: funding/templates/funding/offer_list.html:7
msgid "Zbiórki"
msgstr ""
msgid "Wpłaty"
msgstr ""
-#: funding/templates/funding/offer_list.html:15
+#: funding/templates/funding/offer_list.html:17
msgid "filtry, tytuł"
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
msgstr ""
#: funding/templates/funding/offer_detail.html:15
+#: funding/templates/funding/offer_list.html:7
msgid "Zbiórki"
msgstr ""
msgid "Wpłaty"
msgstr ""
-#: funding/templates/funding/offer_list.html:15
+#: funding/templates/funding/offer_list.html:17
msgid "filtry, tytuł"
msgstr ""
-# 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.core.management.base import BaseCommand
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
import django.db.models.deletion
--- /dev/null
+# Generated by Django 4.0.8 on 2024-01-31 07:41
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('funding', '0010_alter_funding_options_alter_offer_options_and_more'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='funding',
+ name='customer_ip',
+ field=models.GenericIPAddressField(blank=True, null=True, verbose_name='adres IP'),
+ ),
+ migrations.AlterField(
+ model_name='funding',
+ name='notify_key',
+ field=models.CharField(blank=True, max_length=32),
+ ),
+ migrations.AlterField(
+ model_name='funding',
+ name='pos_id',
+ field=models.CharField(blank=True, max_length=255, verbose_name='POS id'),
+ ),
+ ]
--- /dev/null
+# Generated by Django 4.0.8 on 2024-02-21 11:52
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('catalogue', '0046_alter_book_options_alter_bookmedia_options_and_more'),
+ ('funding', '0011_alter_funding_customer_ip_alter_funding_notify_key_and_more'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='spent',
+ name='annotation',
+ field=models.CharField(blank=True, help_text="np. 'audiobook'", max_length=255, verbose_name='adnotacja'),
+ ),
+ migrations.AddField(
+ model_name='spent',
+ name='link',
+ field=models.URLField(blank=True, help_text='zamiast książki, np. kolekcja'),
+ ),
+ migrations.AlterField(
+ model_name='spent',
+ name='book',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='catalogue.book'),
+ ),
+ ]
--- /dev/null
+# Generated by Django 4.0.8 on 2024-02-21 11:55
+
+from django.db import migrations, models
+
+
+def populate_spent(apps, schema_editor):
+ Offer = apps.get_model('funding', 'Offer')
+ Spent = apps.get_model('funding', 'Spent')
+ Book = apps.get_model('catalogue', 'Book')
+ for o in Offer.objects.all():
+ if Spent.objects.filter(book__slug=o.slug).exists():
+ continue
+ s = o.funding_set.exclude(completed_at=None).aggregate(s=models.Sum('amount'))['s'] or 0
+ if s >= o.target:
+ try:
+ book = Book.objects.get(slug=o.slug)
+ link = ''
+ except Book.DoesNotExist:
+ book = None
+ link = o.slug
+ Spent.objects.create(
+ book=book,
+ link=link,
+ amount=o.target,
+ timestamp=o.end,
+ annotation='auto'
+ )
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('funding', '0012_spent_annotation_spent_link_alter_spent_book'),
+ ]
+
+ operations = [
+ migrations.RunPython(
+ populate_spent,
+ migrations.RunPython.noop
+ )
+ ]
--- /dev/null
+# Generated by Django 4.0.8 on 2024-04-10 10:54
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('catalogue', '0046_alter_book_options_alter_bookmedia_options_and_more'),
+ ('funding', '0013_missing_spent'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='spent',
+ name='annotation',
+ field=models.CharField(blank=True, help_text='Adnotacja pojawi się w nawiasie w rozliczeniu, by wyjaśnić sytuację w której do tej samej książki może być przypisany więcej niż jeden wydatek. Np. osobny wydatek na audiobook może mieć adnotację „audiobook”.', max_length=255, verbose_name='adnotacja'),
+ ),
+ migrations.AlterField(
+ model_name='spent',
+ name='book',
+ field=models.ForeignKey(blank=True, help_text='Książka, na którą zostały wydatkowane środki. Powinny tu być uwzględnione zarówno książki na które zbierano środki, jak i dodatkowe książki sfinansowane z nadwyżek ze zbiórek.', null=True, on_delete=django.db.models.deletion.PROTECT, to='catalogue.book', verbose_name='książka'),
+ ),
+ migrations.AlterField(
+ model_name='spent',
+ name='link',
+ field=models.URLField(blank=True, help_text='Jeśli wydatek nie dotyczy pojedynczej książki, to zamiast pola „Książka” powinien zostać uzupełniony link do sfinansowanego obiektu (np. kolekcji).'),
+ ),
+ ]
-# 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 datetime import date, datetime
from urllib.parse import urlencode
"""
offer = models.ForeignKey(Offer, models.PROTECT, verbose_name='zbiórka')
- customer_ip = models.GenericIPAddressField('adres IP', null=True)
+ customer_ip = models.GenericIPAddressField('adres IP', null=True, blank=True)
name = models.CharField('nazwa', max_length=127, blank=True)
email = models.EmailField('e-mail', blank=True, db_index=True)
perks = models.ManyToManyField(Perk, verbose_name='prezenty', blank=True)
language_code = models.CharField(max_length=2, null=True, blank=True)
notifications = models.BooleanField('powiadomienia', default=True, db_index=True)
- notify_key = models.CharField(max_length=32)
+ notify_key = models.CharField(max_length=32, blank=True)
class Meta:
verbose_name = 'wpłata'
class Spent(models.Model):
""" Some of the remaining money spent on a book. """
- book = models.ForeignKey(Book, models.PROTECT)
+ book = models.ForeignKey(
+ Book, models.PROTECT, null=True, blank=True,
+ verbose_name='książka',
+ help_text='Książka, na którą zostały wydatkowane środki. '
+ 'Powinny tu być uwzględnione zarówno książki na które zbierano środki, jak i dodatkowe książki '
+ 'sfinansowane z nadwyżek ze zbiórek.'
+ )
+ link = models.URLField(
+ blank=True,
+ help_text="Jeśli wydatek nie dotyczy pojedynczej książki, to zamiast pola „Książka” "
+ "powinien zostać uzupełniony link do sfinansowanego obiektu (np. kolekcji)."
+ )
amount = models.DecimalField('kwota', decimal_places=2, max_digits=10)
timestamp = models.DateField('kiedy')
+ annotation = models.CharField(
+ 'adnotacja', max_length=255, blank=True,
+ help_text="Adnotacja pojawi się w nawiasie w rozliczeniu, by wyjaśnić sytuację w której "
+ "do tej samej książki może być przypisany więcej niż jeden wydatek. "
+ "Np. osobny wydatek na audiobook może mieć adnotację „audiobook”.")
class Meta:
verbose_name = 'pieniądze wydane na książkę'
ordering = ['-timestamp']
def __str__(self):
- return "Spent: %s" % str(self.book)
+ return "Wydane na: %s" % str(self.book or self.link)
{% extends 'base.html' %}
+{% load i18n %}
{% block settings %}
{% load title %}
- {% title 'Zbiórki' %}
+ {% trans 'Zbiórki' as title %}
+ {% title title %}
{% endblock %}
<tr>
<td>{% trans "Data" %}:</td>
<td>{% trans "Rozdysponowanie środków" %}:</td>
- <td>{% trans "Kwota" %}:</td>
+ <td>{% trans "Zebrane" %}:</td>
+ <td>{% trans "Wydane" %}:</td>
<td>{% trans "Bilans" %}:</td>
</tr>
<tr class="funding-minus">
<td class="oneline">{{ entry.timestamp }}</td>
<td>
- {% trans "Pieniądze przeznaczone na opublikowanie książki" %}:
- <a href="{{ entry.book.get_absolute_url }}">{{ entry.book }}</a>
+ {% trans "Pieniądze przeznaczone na publikację" %}:
+ {% if entry.book %}
+ <a href="{{ entry.book.get_absolute_url }}">{{ entry.book }}</a>
+ {% if entry.annotation %}
+ ({{ entry.annotation }})
+ {% endif %}
+ {% else %}
+ <a href="{{ entry.link }}">{{ entry.annotation }}</a>
+ {% endif %}
</td>
- <td>-{{ entry.amount }} zł</td>
+ <td></td>
+ <td>{{ entry.amount }} zł</td>
<td>{{ entry.total }} zł</td>
</tr>
{% else %}
<tr class="funding-plus">
<td class="oneline">{{ entry.end }}</td>
<td>
- {% trans "Pieniądze pozostałe ze zbiórki na" %}:
+ {% trans "Zbiórka" %}:
<a href="{{ entry.get_absolute_url }}">{{ entry }}</a>
</td>
- <td>+{{ entry.wlfund }} zł</td>
+ <td>{{ entry.wlfund }} zł</td>
+ <td></td>
<td>{{ entry.total }} zł</td>
</tr>
{% endif %}
-# 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 template
from django.template.loader import render_to_string
-# 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 datetime import date, timedelta
from django.test import TestCase
-# 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 modeltranslation.translator import translator, TranslationOptions
-# 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.urls import path, include
from annoy.utils import banner_exempt
-# 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.
#
import re
import string
-# 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.http import Http404, HttpResponseRedirect
from django.shortcuts import get_object_or_404, redirect, render
offers = []
for o in Offer.past():
- if o.is_win():
- o.wlfund = o.sum() - o.target
- if o.wlfund > 0:
- offers.append(o)
- else:
- o.wlfund = o.sum()
- if o.wlfund > 0:
- offers.append(o)
+ o.wlfund = o.sum()
+ if o.wlfund > 0:
+ offers.append(o)
amount = sum(o.wlfund for o in offers) - sum(o.amount for o in Spent.objects.all())
ctx['amount'] = amount
ctx['log'] = add_total(amount, mix(
- (offers, lambda x: x.end, 'offer'),
(Spent.objects.all().select_related(), lambda x: x.timestamp, 'spent'),
+ (offers, lambda x: x.end, 'offer'),
))
return ctx
-# 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 decimal import Decimal, DecimalException
from django import forms
-# 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.contrib import admin
class InfoPageAdmin(TranslationAdmin):
- list_display = ('title', 'slug')
+ list_display = ('title', 'slug', 'published', 'findable')
admin.site.register(InfoPage, InfoPageAdmin)
-# 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.db import models, migrations
-# 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.db import migrations, models
--- /dev/null
+# Generated by Django 4.0.8 on 2024-03-12 08:50
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('infopages', '0004_alter_infopage_options_alter_infopage_left_column_and_more'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='infopage',
+ name='findable',
+ field=models.BooleanField(default=True, verbose_name='wyszukiwalna'),
+ preserve_default=False,
+ ),
+ migrations.AddField(
+ model_name='infopage',
+ name='published',
+ field=models.BooleanField(default=True, help_text='Nieopublikowane strony są widoczne tylko dla administratorów.', verbose_name='opublikowana'),
+ preserve_default=False,
+ ),
+ ]
-# 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.db import models
from django.urls import reverse
slug = models.SlugField('slug', max_length=120, unique=True, db_index=True)
title = models.CharField('tytuł', max_length=120, blank=True)
+ published = models.BooleanField(
+ 'opublikowana',
+ help_text='Nieopublikowane strony są widoczne tylko dla administratorów.'
+ )
+ findable = models.BooleanField('wyszukiwalna')
left_column = models.TextField('lewa kolumna', blank=True)
right_column = models.TextField('prawa kolumna', blank=True)
{% block main %}
- <div class="l-article__title">
- <h1>{{ page.title }}</h1>
+ {% if not page.published %}
+ <div class="l-container">
+ <strong>(Strona nie opublikowana, podgląd tylko dla zespołu.)</strong>
</div>
- <article class="l-article">
- <div class="l-article__cols">
- <div class="left-column">
- {{ left_column }}
- </div>
- <div class="right-column">
- {{ right_column }}
- </div>
+
+ {% endif %}
+
+ <div class="l-article__title">
+ <h1>{{ page.title }}</h1>
+ </div>
+ <article class="l-article">
+ <div class="l-article__cols">
+ <div class="left-column">
+ {{ left_column }}
</div>
- </article>
+ <div class="right-column">
+ {{ right_column }}
+ </div>
+ </div>
+ </article>
{% endblock %}
-# 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 modeltranslation.translator import translator, TranslationOptions
-# 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.urls import path
from annoy.utils import banner_exempt
-# 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.shortcuts import render, get_object_or_404
from django.template import RequestContext, Template, TemplateSyntaxError
def infopage(request, slug):
- page = get_object_or_404(InfoPage, slug=slug)
+ if request.user.is_staff:
+ page = get_object_or_404(InfoPage, slug=slug)
+ else:
+ page = get_object_or_404(InfoPage, slug=slug, published=True)
rc = RequestContext(request)
try:
-# 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 datetime import date
import json
-# 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.
#
import csv
import sys
-# 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.
#
import json
from django.core.management.base import BaseCommand
-# 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 datetime import date
from lxml import etree
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.db import models
from django.db.models import F
-# 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.urls import path
from . import views
-# 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 librarian import RDFNS, DCNS
-# 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.contrib.auth.decorators import permission_required
from django.http.response import HttpResponseRedirect
-# 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.
#
# Leśmianator do działania wymaga pliku dictionary.p w katalogu aplikacji
-# 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.
#
import re
from pickle import dump
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.conf import settings
from django.db import migrations, models
-# 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 functools import reduce
import pickle
-# 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.urls import path
from . import views
-# 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.
#
import json
from django.shortcuts import render, get_object_or_404
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.\r
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.\r
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.\r
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.\r
#\r
from django.contrib import admin\r
\r
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import migrations, models
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.\r
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.\r
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.\r
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.\r
#\r
from django.db import models\r
from django.urls import reverse\r
-# 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.urls import path
from . import views
-# 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.shortcuts import render, get_object_or_404
from libraries.models import Catalog, Library
#!/usr/bin/env python
-# 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.
#
import os
import sys
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.urls import path
from django.contrib import admin
-# 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.core.exceptions import ValidationError
from django.core.validators import validate_email
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.
#
import hashlib
-# 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.
#
import requests
from django.conf import settings
-# 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 modeltranslation.translator import translator, TranslationOptions
-# 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.urls import path
from django.views.generic import RedirectView
-# 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.http.response import HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
-# 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.
#
"""
Custom managers for Django models registered with the tagging
-# 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.
#
"""
Models and managers for generic tagging.
-# 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 datetime import datetime
from lxml import etree
-# 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 catalogue.test_utils import WLTestCase
from catalogue import models
-# 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.urls import path
from . import views
-# 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 oai.handlers import Catalogue, NS_DCTERMS, nsdcterms
from oaipmh.server import ServerBase, NS_OAIDC, NS_DC, NS_XSI, nsoaidc, nsdc
-# 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 lxml import etree
from django.conf import settings
-# 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.urls import path
from opds.views import RootFeed, ByCategoryFeed, ByTagFeed, UserFeed, UserSetFeed, SearchFeed
-# 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 functools import reduce
import os.path
from django.contrib.syndication.views import Feed
from django.shortcuts import get_object_or_404
from django.urls import reverse
-from django.utils.feedgenerator import Atom1Feed
+from django.utils.feedgenerator import Atom1Feed, Enclosure
from django.conf import settings
from django.http import Http404
from django.contrib.sites.models import Site
# Enclosure as OPDS Acquisition Link
for enc in item.get('enclosures', []):
- handler.addQuickElement(
- "link", '',
+ handler.startElement(
+ "link",
{
"rel": "http://opds-spec.org/acquisition",
"href": enc.url,
- "length": enc.length,
+ "length": str(enc.length),
"type": enc.mime_type,
})
- # add a "red book" icon
- handler.addQuickElement(
- "link", '',
- {
- "rel": "http://opds-spec.org/thumbnail",
- "href": self._book_img,
- "length": self._book_img_size,
- "type": "image/png",
+ if hasattr(enc, 'indirect'):
+ NS = 'http://opds-spec.org/2010/catalog'
+ handler.startPrefixMapping('opds', NS)
+ handler.startElementNS((NS, 'indirectAcquisition'), 'opds:indirectAcquisition', {
+ (None, 'type'): enc.indirect,
})
+ handler.endElementNS((NS, 'indirectAcquisition'), 'opds:indirectAcquisition')
+ handler.endPrefixMapping('opds')
+ handler.endElement('link')
+ # add a "red book" icon
+ handler.addQuickElement(
+ "link", '',
+ {
+ "rel": "http://opds-spec.org/thumbnail",
+ "href": self._book_img,
+ "length": self._book_img_size,
+ "type": "image/png",
+ })
# Categories.
for cat in item['categories']:
class AcquisitionFeed(Feed):
feed_type = OPDSFeed
link = 'http://www.wolnelektury.pl/'
- item_enclosure_mime_type = "application/epub+zip"
author_name = "Wolne Lektury"
author_link = "http://www.wolnelektury.pl/"
except AttributeError:
return ''
- def item_enclosure_url(self, book):
- return full_url(book.epub_url()) if book.epub_file else None
-
- def item_enclosure_length(self, book):
- return book.epub_file.size if book.epub_file else None
+ def item_enclosures(self, book):
+ enc = []
+ if book.epub_file:
+ enc.append(Enclosure(
+ url=full_url(book.epub_url()),
+ length=book.epub_file.size,
+ mime_type="application/epub+zip"
+ ))
+ if book.has_mp3_file():
+ e = Enclosure(
+ url=full_url(reverse('download_zip_mp3', args=[book.slug])),
+ length=sum(bm.file.size for bm in book.get_media('mp3')),
+ mime_type="application/zip"
+ )
+ e.indirect = 'audio/mpeg'
+ enc.append(e)
+ return enc
@piwik_track
return get_object_or_404(Tag, category=category, slug=slug)
def items(self, tag):
- return Book.tagged_top_level([tag])
+ qs = Book.tagged_top_level([tag])
+ qs = qs.filter(preview=False, findable=True)
+ return qs
@factory_decorator(logged_in_or_basicauth())
# query is set above.
log.debug("Inline query = [%s], criteria: %s" % (query, criteria))
- books = Book.objects.filter(findable=True).annotate(
+ books = Book.objects.filter(findable=True, preview=False).annotate(
search_vector=UnaccentSearchVector('title')
)
if query:
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.conf import settings
from django.db import migrations, models
-# 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.contrib.auth import get_user_model
from django.contrib.auth.models import User
-# 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 datetime import date, datetime, timedelta
from decimal import Decimal
-# 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.contrib.auth.models import User
from unittest import skip
-# 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.urls import path
from django.views.generic import RedirectView
-# 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 decimal import Decimal
-# 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.contrib import admin
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import models, migrations
-# 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.db import migrations, models
-# 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.apps import apps
from django.conf import settings
-# 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.
#
import datetime
from django.conf import settings
-# 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 datetime import datetime
from django.shortcuts import render, get_object_or_404
-# 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.contrib import admin
from picture.models import Picture
-# 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.urls import path
from . import views
-# 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.
#
import json
from django.http import Http404
-# 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 picture.models import Picture
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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 os.path import join
from django.conf import settings
-# 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.db import models, migrations
-# 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.db import models, migrations
-# 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.db import models, migrations
-# 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.
#
import json
from django.core.files.base import ContentFile
-# 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.db import migrations, models
-# 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 os.path import join
import sorl.thumbnail.fields
-# 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.db import migrations, models
-# 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.db import models, transaction
import catalogue.models
-# 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.
#
import json
from celery import shared_task
-# 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.
#
import logging
from random import randint
-# 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 os import path
from picture.models import Picture
-# 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 collections import Counter
from django.conf import settings
-# 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.contrib import admin
-# 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
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.db import models
from django.core.exceptions import ValidationError
-# 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 template
from ..forms import PollForm
-# 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.urls import path
from . import views
-# 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.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
-# 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.contrib import admin
-# 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.contrib.sites.models import Site
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import models
-# 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.urls import path
from push import views
-# 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.
#
import firebase_admin
from firebase_admin import credentials, messaging
-# 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.contrib.auth.decorators import permission_required
from django.http.response import HttpResponseRedirect
fieldsets = [
(None, {
"fields": [
+ 'nosignature',
('first_name', 'sex', 'date_of_birth'),
'last_name',
('street', 'building'),
def parse_payment_feedback(f):
lines = csv.reader(StringIO(f.read().decode('cp1250')))
for line in lines:
+ if not line: continue
print(line)
assert line[0] in ('1', '2')
if line[0] == '1':
# The AU file.
lines = csv.reader(StringIO(f.read().decode('cp1250')))
for line in lines:
+ if not line: continue
payment_id = line[0]
status = int(line[8])
comment = line[9]
--- /dev/null
+# Generated by Django 4.0.8 on 2024-02-05 12:56
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('pz', '0013_alter_campaign_options_alter_directdebit_options_and_more'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='directdebit',
+ name='nosignature',
+ field=models.BooleanField(default=False, verbose_name='Bez podpisu'),
+ ),
+ ]
campaign = models.ForeignKey(Campaign, models.PROTECT, null=True, blank=True, verbose_name='kampania')
latest_status = models.CharField(max_length=255, blank=True)
+
+ nosignature = models.BooleanField('Bez podpisu', default=False)
class Meta:
verbose_name = 'polecenie zapłaty'
<link rel="stylesheet" type="text/css" media="all" href="{% static 'contrib/leaflet.markercluster-1.4.1/MarkerCluster.css' %}">
<link rel="stylesheet" type="text/css" media="all" href="{% static 'contrib/leaflet.markercluster-1.4.1/MarkerCluster.Default.css' %}">
<meta property="og:type" content="website">
- <meta property="og:title" content="Wakacje z Wolnymi Lekturami">
+ <meta property="og:title" content="Mapa Wolnych Lektur">
<meta property="og:image" content="{% static 'references/preview.png' %}">
<meta property="og:image:alt" content="Mapa miejsc w książkach na Wolnych Lekturach">
<meta property="og:image:width" content="1200">
def pin_map(request):
return render(request, 'references/map.html', {
- 'title': 'Wakacje',
+ 'title': 'Mapa Wolnych Lektur',
'entities': models.Entity.objects.exclude(lat=None).exclude(lon=None),
'funding_no_show_current': True,
})
-# 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.
#
-# 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 functools import wraps
from django import template
-# 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.urls import path
from . import views
-# 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 errno import ENOENT
import os
-# 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.
#
import os.path
from datetime import date
-# 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.forms.widgets import RadioSelect
-# 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.apps import apps
from django.conf import settings
-# 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.
#
import re
from librarian.parser import WLDocument
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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 search.tests.index import *
-# 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.conf import settings
from django.test.utils import override_settings
-# 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.urls import path
from . import views
-# 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.conf import settings
from django.shortcuts import render
])
if len(data) < limit:
infos = infopages.models.InfoPage.objects.filter(
+ published=True,
+ findable=True,
title_pl__iregex='\m' + prefix).only('title', 'id', 'slug')
data.extend([
{
-# 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.contrib import admin
from django.forms import ModelForm
-# 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.urls import path
from stats.utils import piwik_track_view
-# 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.http import Http404
from rest_framework.generics import ListAPIView, get_object_or_404
-# 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
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.db import migrations
-# 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.db import migrations, models
import django.db.models.deletion
-# 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.db import migrations
-# 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.db import migrations, models
-# 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.db import migrations, models
-# 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 random import randint
from django.db import models
-# 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.
#
import re
from django import template
-# 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.urls import path
from django.views.decorators.cache import never_cache
-# 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 collections import defaultdict
from random import randint
-# 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.shortcuts import render, get_object_or_404, redirect
from django.http import HttpResponseForbidden, JsonResponse
-# 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.
#
import re
from fnpdjango.utils.text import char_map
-# 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.
#
__author__ = 'Marek Stępniowski, <marek@stepniowski.com>'
__version__ = '0.1'
-# 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.contrib import admin
from django.db.models import TextField
-# 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.db import models, migrations
-# 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.db import migrations, models
-# 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.
#
import json
import time
-# 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 template
from django.core.cache import cache
-# 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.conf import settings
from django import forms
-# 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 celery import shared_task
from django.conf import settings
-# 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.conf import settings
from datetime import datetime
-# 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.contrib import admin
-# 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.contrib.sites.models import Site
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import models, migrations
import django.db.models.deletion
-# 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.db import migrations, models
-# 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.conf import settings
from django.db import migrations, models
-# 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.
#
import re
from datetime import timedelta
-# 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.urls import path
from suggest import views
-# 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.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _
-# 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.
#
"""
Celery waiter.
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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.db import models, migrations
-# 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 os.path import join, isfile
from django.urls import reverse
-# 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 os.path import abspath, join
from django.conf import settings
-# 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 celery.signals import task_postrun
from waiter.models import WaitedFile
-# 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.urls import path
from waiter import views
-# 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 os.path import abspath, join, exists
from shutil import rmtree
-# 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 os.path import join
from waiter.models import WaitedFile
-# 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 .celery import app as celery_app
-# 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.apps import AppConfig
-# 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.
#
import os
from celery import Celery
-# 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.conf import settings
-# 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 allauth.socialaccount.forms import SignupForm
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
msgid ""
msgstr ""
-# 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 allauth.socialaccount.models import SocialAccount
from django.core.management.base import BaseCommand
-# 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.
#
import os
import shutil
-# 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.
#
import os
import time
-# 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.
#
import cProfile
import functools
-# 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.
#
# Django settings for wolnelektury project.
import sentry_sdk
-# 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.
#
INSTALLED_APPS_OUR = [
-# 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.
#
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
-# 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 os import path
from .paths import PROJECT_DIR
-# 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.
#
CELERY_TASK_EAGER_PROPAGATES = True
CELERY_SEND_TASK_ERROR_EMAILS = True
-# 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.
#
HONEYPOT_FIELD_NAME = 'miut'
PAGINATION_INVALID_PAGE_RAISES_404 = True
-# 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 datetime import date
import os
-# 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 os import path
from .paths import PROJECT_DIR
-# 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 os import path
-# 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 os import path
from .paths import VAR_DIR
'2022/styles/main.scss',
'2022/more.scss',
'chunks/edit.scss',
+
+ 'scss/text.scss',
],
'output_filename': 'css/compressed/main.css',
},
'book_text': {
'source_filenames': [
'css/import/gelasio.css',
+
'scss/book_text.scss',
'css/new.book.css',
- 'annoy/banner.scss',
- 'annoy/book_text.scss',
- '2022/styles/reader_player.scss',
+
+ 'annoy/banner.scss', # ?
+ 'annoy/book_text.scss', # ?
+ '2022/styles/reader_player.scss', # ?
'css/master.picture.css',
],
'js/contrib/jquery.cycle2.min.js',
'sponsors/js/sponsors.js',
+ 'annoy/banner.js',
+ 'js/book_text/info.js',
+ 'js/book_text/menu.js',
+ 'js/book_text/note.js',
+ 'js/book_text/references.js',
+ 'js/book_text/settings.js',
+ 'js/book_text/toc.js',
+ 'js/book_text/progress.js',
'js/contrib/jquery.countdown.js', 'js/contrib/jquery.countdown-pl.js',
'js/contrib/jquery.countdown-de.js', 'js/contrib/jquery.countdown-uk.js',
-# 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 wolnelektury.settings import *
-# 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.conf import settings
from django.core.cache import caches
--- /dev/null
+<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.5391 14.4615C15.5391 11.2308 18.3758 8 22.0006 8C25.6254 8 28.4621 10.8654 28.4621 14.4615C28.4621 19.8462 22.0006 19.8462 22.0006 26.3077" stroke="#007880" stroke-width="3" stroke-linecap="round"/>
+<circle cx="21.9995" cy="33.8462" r="2.15385" fill="#007880"/>
+</svg>
--- /dev/null
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="7" cy="7" r="7" fill="#1D97FF"/>
+<circle cx="1" cy="1" r="1" transform="matrix(1 0 0 -1 6 5)" fill="white"/>
+<rect width="2" height="5" rx="1" transform="matrix(1 0 0 -1 6 11)" fill="white"/>
+<path d="M0 14V7L4 12L0 14Z" fill="#1D97FF"/>
+</svg>
--- /dev/null
+<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M36.5042 24.9781C36.8253 24.041 37 23.0357 37 21.9899C37 20.944 36.8253 19.9387 36.5042 19.0016L33.0635 18.3207C32.8839 17.7822 32.6659 17.2612 32.4131 16.7607L34.362 13.8501C33.9265 12.9602 33.3391 12.1261 32.5995 11.3865C31.86 10.6469 31.0258 10.0595 30.1359 9.62404L27.2165 11.5787C26.7166 11.3281 26.1964 11.112 25.6587 10.9343L24.9783 7.49607C24.041 7.17468 23.036 7 21.9899 7C20.9437 7 19.9387 7.17468 19.0016 7.4958L18.3213 10.934C17.7805 11.1128 17.2573 11.3303 16.7547 11.5828L13.8501 9.63803C12.9602 10.0735 12.1261 10.6609 11.3865 11.4005C10.6469 12.14 10.0595 12.9742 9.62404 13.8641L11.5655 16.7634C11.3094 17.271 11.0889 17.7997 10.9082 18.3463L7.49634 19.0214C7.17468 19.959 7 20.964 7 22.0101C7 23.0563 7.17468 24.0613 7.4958 24.9984L10.9033 25.6727C11.0854 26.2247 11.3072 26.7586 11.5661 27.2708L9.6383 30.1499C10.0738 31.0398 10.6612 31.8739 11.4007 32.6135C12.1403 33.3531 12.9745 33.9405 13.8644 34.376L16.7467 32.446C17.2606 32.7048 17.7962 32.9267 18.3498 33.1085L19.0219 36.5042C19.959 36.8253 20.9643 37 22.0101 37C23.056 37 24.0613 36.8253 24.9984 36.5042L25.6732 33.0942C26.223 32.9116 26.7548 32.6889 27.2651 32.4301L30.1502 34.362C31.04 33.9265 31.8742 33.3391 32.6138 32.5995C33.3534 31.86 33.9408 31.0258 34.3762 30.1359L32.4328 27.2335C32.6862 26.7273 32.9037 26.2003 33.0825 25.6557L36.5042 24.9783V24.9781ZM21.9899 27.4628C18.9819 27.4628 16.5435 25.0244 16.5435 22.0165C16.5435 19.0085 18.9819 16.5701 21.9899 16.5701C24.9978 16.5701 27.4362 19.0085 27.4362 22.0165C27.4362 25.0244 24.9978 27.4628 21.9899 27.4628Z" fill="#007880"/>
+</svg>
--- /dev/null
+<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="8.5" cy="13.5" r="1.5" fill="#007880"/>
+<rect x="13" y="12" width="24" height="3" rx="1.5" fill="#007880"/>
+<circle cx="8.5" cy="21.5" r="1.5" fill="#007880"/>
+<rect x="13" y="20" width="24" height="3" rx="1.5" fill="#007880"/>
+<circle cx="14.5" cy="29.5" r="1.5" fill="#007880"/>
+<rect x="19" y="28" width="18" height="3" rx="1.5" fill="#007880"/>
+</svg>
position:absolute;
top: 60px;
- z-index: 1;
+ z-index: 50;
position: absolute;
width: 186px;
.funding-promo-bar {
- margin: 18px auto;
+ margin: auto;
.l-checkout__support {
- margin: 0;
+ margin: 18px 0;
a {
display: flex;
align-items: start;
+ gap: 0 10px;
+
+ flex-wrap: wrap;
+ @include rwd($B4) {
+ flex-wrap: nowrap;
+ }
.buttonlike {
- margin-right: 10px;
background: #FFA500;
//color: #083F4D;
color: black;
}
.funding-bar-container {
flex-grow: 1;
+
+ display: contents;
+ @include rwd($B4) {
+ display: block;
+ }
}
}
}
src: url('/static/fonts/source-sans-pro/source-sans-pro-v21-cyrillic_greek_greek-ext_latin_latin-ext-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
url('/static/fonts/source-sans-pro/source-sans-pro-v21-cyrillic_greek_greek-ext_latin_latin-ext-700.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
+
+
+
+@font-face {
+ font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
+ font-family: 'Source Serif Pro';
+ font-style: normal;
+ src: url('/static/fonts/source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2') format('woff2');
+}
border-radius: 0 0 5px 5px;
margin: 0 auto;
display: flex;
+ gap: 10px;
align-items: center;
justify-content: space-between;
position: relative;
--- /dev/null
+.annnoy-banner-on {
+ display: none;
+}
+
+.annoy-banner_blackout {
+ //display: flex;
+ display: none;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 9999;
+ background: linear-gradient(180deg, rgba(0,0,0,1) 90%, rgba(0,0, 0,.5) 100%);
+
+ .annoy-banner-inner {
+ max-height: 100vh;
+ overflow-y: auto;
+ padding: 0 0 30px 0;
+ display: flex;
+ flex-direction: column;
+ gap: 40px;
+ }
+ .annoy-banner_actions {
+ display: flex;
+ flex-direction: column;
+ gap: 40px;
+ }
+ .annoy-banner_img {
+ flex: 1;
+ text-align: center;
+ img {
+ max-height: 100%;
+ max-width: 100%;
+ }
+ }
+ .text {
+ display: flex;
+ padding: 6px 30px;
+ flex: 1;
+ gap: 40px;
+ flex-direction: column;
+ color: white;
+ p {
+ font-size: 24px;
+ }
+ }
+ .action {
+ font-size: 1.6rem !important;
+ }
+ .annoy-banner-off {
+ font-size: 1.2rem !important;
+ }
+
+ @include rwd($break-flow) {
+ .annoy-banner-inner {
+ padding: 0;
+ margin: 10vh 10vw 20vh 10vw;
+ max-height: 70vh;
+ flex-direction: row;
+ overflow-y: unset;
+
+ .text {
+ padding: 0 20px 0 0;
+ overflow-y: auto;
+ }
+ }
+ .action {
+
+ }
+ .annoy-banner-off {
+
+ }
+ }
+}
text-decoration: underline;
}
}
+
+.infopage-blog {
+ padding: 0;
+ list-style: none;
+ li {
+ margin-bottom: .7em;
+ }
+}
.l-author__quotes__slider__item {
max-width: 336px;
outline: 0;
+
+ .verse-indent {
+ padding-left: 1em;
+ &.verse-indent-2 { padding-left: 1.1em; }
+ &.verse-indent-3 { padding-left: 1.2em; }
+ &.verse-indent-4 { padding-left: 1.3em; }
+ &.verse-indent-5 { padding-left: 1.4em; }
+ &.verse-indent-6 { padding-left: 1.5em; }
+ &.verse-indent-7 { padding-left: 1.6em; }
+ &.verse-indent-8 { padding-left: 1.7em; }
+ &.verse-indent-9 { padding-left: 1.8em; }
+ &.verse-indent-10 { padding-left: 1.9em; }
+ &.verse-indent-11 { padding-left: 2em; }
+ &.verse-indent-12 { padding-left: 2.1em; }
+ }
+ .verse-cont { padding-left: 2.1em; }
+ .verse-p { padding-left: 1em; }
+ .verse-right { text-align: right; }
+ .verse-center { text-align: center; }
}
border-radius: 10px;
width: 100%; height: 34px;
position: relative;
+ flex: 1;
span {
position: absolute;
top: 0; left: 0;
background: #92BD39;
border-radius: 10px;
&:after {
+ white-space: nowrap;
+ color: #083F4D;
+ top: 0; left:10px; bottom: 2px;
+ @include rwd($B5) {
+ color: #FFFFFF;
+ right: 13px;
+ left: auto;
+ }
margin: auto;
position: absolute;
- top: 0; right: 13px; bottom: 2px;
content: attr(data-label);
font-weight: bold;
font-size: 15px;
- color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
display: flex;
margin-top: 7px;
justify-content: space-between;
- align-items: center;
+ align-items: flex-start;
+ gap: 15px;
p {
margin: 0;
font-weight: normal;
padding-left: 16px;
padding-right: 16px;
}
+
+.l-breadcrumb-container {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
/*!*/
+@import "annoy";
@import "navigation";
@import "header";
@import "main";
@import "simple";
@import "taglist";
@import "search";
+@import "text";
--- /dev/null
+#global-progress {
+ position: sticky;
+ top: 0;
+ background: white;
+ z-index: 1;
+ border-bottom: 1px solid #F2F2F2;
+
+ .progress-text {
+ line-height: 24px;
+ padding: 4px;
+ color: #083F4D;
+ font-size: 16px;
+ .progress-text-value {
+ font-weight: 600;
+ }
+ }
+
+ .bar {
+ display: flex;
+ height: 18px;
+ gap: 4px;
+ padding: 4px;
+
+ .piece {
+ position: relative;
+ background: #F2F2F2;
+ overflow: hidden;
+ border-radius: 2px;
+
+ .filled {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ background: #92BD39;
+ }
+ }
+ }
+}
+
+.l-text_toolbar {
+ display: flex;
+ gap: 16px;
+ margin-right: -7px;
+ position: relative;
+ a {
+ img {
+ display: block;
+ }
+ }
+
+ .box {
+ z-index: 5;
+ }
+}
+
+#main-text {
+ position: relative;
+ margin-bottom: 30px;
+ .text_next-book {
+ position: absolute;
+ right: 0;
+ top: 0;
+ }
+ .text_prev-book {
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+ #book-text {
+ padding: 5px;
+ @include rwd($break-wide) {
+ width: 717px;
+ padding: 0;
+ }
+ margin: 0 auto;
+
+ color: #333333;
+
+ font-family: "Source Serif Pro";
+ font-size: 18px;
+ line-height: 28px;
+ }
+}
+
+
+#toc {
+ display: none;
+
+
+}
+
+#heretoc {
+ margin-top: .5em;
+
+ // Workaround for missing li's.
+ ol a {
+ line-height: 30px;
+ }
+}
+
+#menu .box {
+ display: none;
+ position: absolute;
+ right: 0px;
+ top: 50px;
+ width: 80vw;
+ max-width: 600px;
+ height: 300px;
+ padding: 30px;
+ overflow: auto;
+ background: #FFE79E;
+ box-shadow: 0px 0px 20px rgba(1, 129, 137, 0.2);
+ border-radius: 10px;
+}
+#menu #wltoc {
+ right: 0px;
+ width: 50vw;
+ height: 300px;
+}
+#menu #settings {
+ width: 200px;
+ height: 200px;
+}
+#themes {
+ display: none;
+}
+#other-text {
+ display: none;
+}
+#reference-box {
+ display: none;
+ width: 300px;
+ position: fixed;
+ top: 0;
+ right: 0;
+ z-index:100;
+ background: #eee;
+
+ img {
+ margin: 0;
+ }
+
+ #reference-map {
+ height:400px;
+ width: 300px;
+ @media screen and (max-height: 800px) {
+ height: 300px;
+ }
+ }
+ #reference-images {
+ padding: 10px;
+ white-space: nowrap;
+ overflow-x: auto;
+ a {
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 10px 0 0;
+ img {
+ width: auto;
+ border: 5px solid white;
+ box-shadow: 4px 4px 4px #666;
+ max-width: 240px;
+ max-height: 200px;
+ }
+ }
+ }
+ #reference-link {
+ display: block;
+ font-size: 1.5em;
+ padding: 10px;
+ }
+
+ #reference-close {
+ font-size: 30px;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ z-index: 1000;
+ font-family: sans-serif;
+ color: black;
+ }
+}
+
+
+
+
+#menu #info {
+ padding-top: 0;
+ display: none;
+ position: absolute;
+ right: 0px;
+ top: 50px;
+ width: 80vw;
+ height: 300px;
+ padding: 0px 30px 30px;
+ overflow: auto;
+ box-shadow: 0px 0px 20px rgba(1, 129, 137, 0.2);
+ border-radius: 10px;
+
+}
+#annoy-stubs {
+ display: none;
+}
+#nota_red {
+ display: none;
+}
+
+
+.l-text_header {
+ margin-top: 50px;
+ display: flex;
+ gap: 60px;
+
+ .l-text_header_cover {
+ width: 167px;
+ height: 236px;
+
+ }
+ .l-text_header__content {
+ flex-grow: 1;
+ }
+
+ .l-text_header_author {
+ margin: 0;
+ font-weight: 600;
+ font-size: 21.5px;
+ line-height: 1.4;
+ a {
+ color: #007880;
+ }
+ }
+ .l-text_header_title {
+ margin: 0;
+ font-weight: 700;
+ font-size: 37px;
+ line-height: 1.3;
+ a {
+ color: #083F4D;
+ }
+ }
+
+}
+
+
+#main-text #book-text {
+ body {
+ font-size: 16px;
+ font-family: Gelasio, Georgia, "Times New Roman", serif;
+ line-height: 1.5em;
+ margin: 0;
+}
+
+a {
+ color: blue;
+ text-decoration: none;
+}
+
+img {
+ max-width: 37.5rem;
+ margin-top: 1em;
+ width: 100%;
+}
+.animacja {
+ margin-top: 1em;
+}
+.animacja img {
+ margin-top: 0;
+}
+
+/* ================================== */
+/* = Header with logo and menu = */
+/* ================================== */
+
+
+/* =================================================== */
+/* = Common elements: headings, paragraphs and lines = */
+/* =================================================== */
+h1 {
+ font-size: 3em;
+ margin: 1.5em 0;
+ text-align: center;
+ line-height: 1.5em;
+ font-weight: bold;
+}
+
+h2 {
+ font-size: 2em;
+ margin: 1.5em 0 0;
+ font-weight: bold;
+ line-height: 1.5em;
+}
+
+h3, .subtitle2 {
+ font-size: 1.5em;
+ margin: 1.5em 0 0;
+ font-weight: normal;
+ line-height: 1.5em;
+}
+
+h4, .subtitle3 {
+ font-size: 1em;
+ margin: 1.5em 0 0;
+ line-height: 1.5em;
+}
+
+.subtitle4 {
+ font-weight: bold;
+}
+
+p {
+ margin: 0;
+}
+
+/* ======================== */
+/* = Footnotes and themes = */
+/* ======================== */
+
+.annotation {
+ font-style: normal;
+ font-weight: normal;
+ font-size: .75em;
+ padding-left: 2px;
+ position: relative;
+ top: -4px;
+ user-select: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+}
+
+#footnotes {
+ margin-top: 3em;
+}
+
+#footnotes .annotation {
+ display: block;
+ float: left;
+ width: 2.5em;
+ clear: both;
+ user-select: auto;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+}
+
+#footnotes > div {
+ margin: 1.5em 0 0 0;
+}
+
+#footnotes p, #footnotes ul, #footnotes .stanza {
+ margin-left: 2.5em;
+ font-size: 0.875em;
+}
+
+#footnotes .permalink {
+ font-size: .75em;
+}
+
+blockquote {
+ font-size: 0.875em;
+}
+
+/* ============= */
+/* = Numbering = */
+/* ============= */
+.verse, .paragraph {
+ position:relative;
+}
+/*.anchor {
+ position: absolute;
+ margin: -0.25em -0.5em;
+ color: #777;
+ font-size: 12px;
+ text-align: center;
+ padding: 0.25em 0.5em;
+ line-height: 1.5em;
+}*/
+
+
+/* =================== */
+/* = Custom elements = */
+/* =================== */
+span.author {
+ font-size: 0.5em;
+ display: block;
+ line-height: 1.5em;
+ margin-bottom: 0.25em;
+}
+
+span.collection {
+ font-size: 0.375em;
+ display: block;
+ line-height: 1.5em;
+ margin-bottom: -0.25em;
+}
+
+span.subtitle {
+ font-size: 0.5em;
+ display: block;
+ line-height: 1.5em;
+ margin-top: -0.25em;
+}
+
+span.translator {
+ font-size: 0.375em;
+ display: block;
+ line-height: 1.5em;
+ margin-top: 0.25em;
+}
+
+div.didaskalia {
+ font-style: italic;
+ margin: 0.5em 0 0 1.5em;
+}
+
+div.kwestia {
+ margin: 0.5em 0 0;
+}
+
+div.stanza {
+ margin: 1.5em 0;
+}
+
+div.kwestia div.stanza {
+ margin: 0;
+}
+
+.verse-p {
+ padding-left: 1em;
+}
+.verse-indent {
+ padding-left: 1em;
+}
+.verse-right { text-align: right; }
+.verse-center { text-align: center; }
+
+.verse-indent.verse-indent-2 { padding-left: 2em; }
+.verse-indent.verse-indent-3 { padding-left: 3em; }
+.verse-indent.verse-indent-4 { padding-left: 4em; }
+.verse-indent.verse-indent-5 { padding-left: 5em; }
+.verse-indent.verse-indent-6 { padding-left: 6em; }
+.verse-indent.verse-indent-7 { padding-left: 7em; }
+.verse-indent.verse-indent-8 { padding-left: 8em; }
+.verse-indent.verse-indent-9 { padding-left: 9em; }
+.verse-indent.verse-indent-10 { padding-left: 10em; }
+.verse-indent.verse-indent-11 { padding-left: 11em; }
+.verse-indent.verse-indent-12 { padding-left: 12em; }
+.verse-cont { padding-left: 12em; }
+
+@media screen and (max-width: 40em) {
+ .verse-indent { padding-left: 4%; }
+ .verse-indent.verse-indent-2 { padding-left: 8%; }
+ .verse-indent.verse-indent-3 { padding-left: 12%; }
+ .verse-indent.verse-indent-4 { padding-left: 16%; }
+ .verse-indent.verse-indent-5 { padding-left: 20%; }
+ .verse-indent.verse-indent-6 { padding-left: 24%; }
+ .verse-indent.verse-indent-7 { padding-left: 28%; }
+ .verse-indent.verse-indent-8 { padding-left: 32%; }
+ .verse-indent.verse-indent-9 { padding-left: 36%; }
+ .verse-indent.verse-indent-10 { padding-left: 40%; }
+ .verse-indent.verse-indent-11 { padding-left: 44%; }
+ .verse-indent.verse-indent-12 { padding-left: 48%; }
+ .verse-cont { padding-left: 48%; }
+}
+
+
+p.paragraph {
+ text-align: justify;
+ margin: 0;
+ text-indent: 1.5em;
+}
+
+.motto {
+ text-align: justify;
+ font-style: italic;
+ margin: 1.5em 0 0;
+}
+
+p.motto_podpis {
+ font-size: 0.875em;
+ text-align: right;
+ margin-bottom: 1.5em;
+}
+
+div.fragment {
+ border-bottom: 0.1em solid #999;
+ padding-bottom: 1.5em;
+}
+
+div.note p, div.dedication p, div.note p.paragraph, div.dedication p.paragraph {
+ text-align: right;
+ font-style: italic;
+}
+
+div.frame {
+ border: 1px darkgray solid;
+ padding: 1em;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+hr.spacer {
+ height: 3em;
+ visibility: hidden;
+}
+
+hr.spacer-line {
+ margin: 1.5em 0;
+ border: none;
+ border-bottom: 0.1em solid #000;
+}
+
+p.spacer-asterisk {
+ padding: 0;
+ margin: 1.5em 0;
+ text-align: center;
+}
+
+div.person-list ol {
+ list-style: none;
+ padding: 0 0 0 1.5em;
+}
+
+p.place-and-time {
+ font-style: italic;
+}
+
+em.math, em.foreign-word, em.book-title, em.didaskalia {
+ font-style: italic;
+}
+
+em.author-emphasis {
+ letter-spacing: 0.1em;
+}
+
+em.person {
+ font-style: normal;
+ font-variant: small-caps;
+}
+
+em.wieksze-odstepy {
+ font-style: normal;
+ word-spacing: 1em;
+}
+
+.verse:after {
+ content: "\feff";
+}
+
+table {
+ border-collapse: collapse;
+ width: 100%;
+}
+
+table.border td, table.border th {
+ border: 1px solid black;
+ vertical-align: top;
+}
+
+
+.anchor {
+ /* Show line numbers. */
+ float: left;
+ font-size: .8em;
+ margin-left: -40px;
+ width: 36px;
+ height: auto;
+ padding: 2px;
+ text-align: center;
+ color: #ccc;
+ user-select: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+
+}
+
+
+
+.theme-begin {
+ font-size: .9em;
+ position: relative;
+ float: right;
+ margin-bottom: 8px;
+ clear: both;
+ line-height: 1.5em;
+ text-align: left;
+ z-index: 60;
+
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ letter-spacing: 0;
+ text-transform: none;
+ text-decoration: none;
+ user-select: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+
+ margin-right: -227px;
+ width: 170px;
+ text-indent: 0;
+ color: inherit;
+ padding-left: 12px;
+ border-left: 1px solid #333;
+}
+
+
+a.reference.interesting:after {
+ content: url('../images/pin.svg');
+ padding: 3px;
+}
+}
+
+
+
+
+#menu {
+#wltoc ol, #themes ol, #objects ol {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+#wltoc ol {
+ padding-left: 1.5em;
+}
+
+#wltoc ol ol {
+ padding: 0 0 1.5em 1.5em;
+ margin: 0;
+}
+
+#wltoc ol ol li {
+ font-weight: normal;
+}
+
+#wltoc h2 {
+ display: none;
+}
+
+#wltoc .anchor {
+ float: none;
+ margin: 0;
+ font-size: 16px;
+ position: inherit;
+}
+
+
+#info .sponsors img {
+ margin-bottom: 1em;
+}
+}
-ms-user-select: text;
}
-#footnotes div {
+#footnotes > div {
margin: 1.5em 0 0 0;
}
-#footnotes p, #footnotes ul {
+#footnotes p, #footnotes ul, #footnotes .stanza {
margin-left: 2.5em;
font-size: 0.875em;
}
margin: 0;
}
+.verse-p {
+ padding-left: 1em;
+}
+.verse-indent {
+ padding-left: 1em;
+}
+.verse-right { text-align: right; }
+.verse-center { text-align: center; }
+
+.verse-indent.verse-indent-2 { padding-left: 2em; }
+.verse-indent.verse-indent-3 { padding-left: 3em; }
+.verse-indent.verse-indent-4 { padding-left: 4em; }
+.verse-indent.verse-indent-5 { padding-left: 5em; }
+.verse-indent.verse-indent-6 { padding-left: 6em; }
+.verse-indent.verse-indent-7 { padding-left: 7em; }
+.verse-indent.verse-indent-8 { padding-left: 8em; }
+.verse-indent.verse-indent-9 { padding-left: 9em; }
+.verse-indent.verse-indent-10 { padding-left: 10em; }
+.verse-indent.verse-indent-11 { padding-left: 11em; }
+.verse-indent.verse-indent-12 { padding-left: 12em; }
+.verse-cont { padding-left: 12em; }
+
+@media screen and (max-width: 40em) {
+ .verse-indent { padding-left: 4%; }
+ .verse-indent.verse-indent-2 { padding-left: 8%; }
+ .verse-indent.verse-indent-3 { padding-left: 12%; }
+ .verse-indent.verse-indent-4 { padding-left: 16%; }
+ .verse-indent.verse-indent-5 { padding-left: 20%; }
+ .verse-indent.verse-indent-6 { padding-left: 24%; }
+ .verse-indent.verse-indent-7 { padding-left: 28%; }
+ .verse-indent.verse-indent-8 { padding-left: 32%; }
+ .verse-indent.verse-indent-9 { padding-left: 36%; }
+ .verse-indent.verse-indent-10 { padding-left: 40%; }
+ .verse-indent.verse-indent-11 { padding-left: 44%; }
+ .verse-indent.verse-indent-12 { padding-left: 48%; }
+ .verse-cont { padding-left: 48%; }
+}
+
+
p.paragraph {
text-align: justify;
margin: 0;
--- /dev/null
+Copyright 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
\ No newline at end of file
--- /dev/null
+(function($){$(function(){
+
+ t = $('#global-progress').data('t');
+ function upd_t() {
+ $text = $('#main-text #book-text');
+ texttop = $text.offset().top;
+
+ $footnotes = $('#footnotes', $text);
+ if ($footnotes.length) {
+ textbottom = $footnotes.offset().top;
+ } else {
+ textbottom = texttop + $text.height();
+ }
+
+ textlen = textbottom - texttop;
+ progress = (window.scrollY - texttop) / textlen;
+ progress = Math.max(0, Math.min(progress, 1))
+
+ $('#global-progress .filled').css('right', (1 - progress) * 100 + '%');
+ tleft = Math.round((1 - progress) * t / 60);
+ tt = '';
+ if (tleft > 60) {
+ h = Math.floor(tleft / 60);
+ tt = h + ' h ';
+ tleft -= h * 60;
+ }
+ tt += tleft + ' min';
+ $('#global-progress .progress-text-value').text(tt);
+ }
+ upd_t();
+ $(window).scroll(upd_t);
+})})(jQuery);
}
if ($('#wltoc li').length > 0) {
- $('#menu-toc').show();
+ $('a[href="#wltoc"]').show();
}
if ($('#wltoc li a').length == 0) {
- $('#menu li a[href="#wltoc"]').remove();
+ $('a[href="#wltoc"]').remove();
}
$("#toc").remove();
button.on('click', function() {
let dataLabel = $(this).attr('data-label');
let dataAction = $(this).attr('data-action');
- $(this).parent().find('.l-article__overlay').toggleClass('is-clicked');
+ $(this).parent().parent().find('.l-article__overlay').toggleClass('is-clicked');
if($(this).text() === dataLabel) {
$(this).text(dataAction);
} else {
--- /dev/null
+<div class="l-container l-change-pop show" style="margin-top:16px;">
+ <h3>Przekaż 1,5%</h3>
+ <p>
+ Przekaż 1,5% podatku na Wolne Lektury KRS 00000 70056<br>
+ Ufunduj darmowe książki dla tysięcy dzieciaków.<br>
+ <a href="/info/wesprzyj-nas/">WIĘCEJ</a>
+ </p>
+</div>
{% block under-menu %}{% endblock %}
+ {% include 'banner_procent.html' %}
+
{% if not funding_no_show_current %}
<div class="l-container funding-promo-bar">
{% cache 120 funding_top_bar LANGUAGE_CODE %}
{% endif %}
{% block global-content %}
- <div class="l-container">
+ <div class="l-container l-breadcrumb-container">
<div class="l-breadcrumb">
<a href="/"><span>{% translate "Strona główna" %}</span></a>
{% block breadcrumbs %}<span>{{ title }}</span>{% endblock %}
</div>
+ {% block breadcrumb-right %}
+ {% endblock %}
</div>
<main class="l-main">
{% block body %}
<h1>{{ form.title }}</h1>
- <p>{{ form.response }}</p>
+ <p id="form-response">{{ form.response|safe }}</p>
+{% endblock %}
+
+{% block extrabody %}
+ <script type="text/javascript">
+ (function() {
+ let $a = $("#form-response a");
+ if ($a.length) {
+ setTimeout(() => {
+ window.location.href = $a.attr('href');
+ }, 5000);
+ }
+ })();
+ </script>
{% endblock %}
+{% load annoy %}
{% load cache %}
{% load i18n %}
{% load static %}
{% load latest_blog_posts from blog %}
{% load preview_ad from catalogue_tags %}
+{% annoy_banner_blackout %}
+
<nav class="l-navigation">
<div class="l-container">
<a href="/" class="l-navigation__logo">
-# 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 datetime import date
from django.conf import settings
-# 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.
#
class DummyThumbnailBackend:
class DummyThumbnail:
-# 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.conf import settings
from django.contrib import admin
path('mapa/', include('references.urls')),
path('newsletter/', include('newsletter.urls')),
path('formularz/', include('forms_builder.forms.urls')),
- path('isbn/', include('isbn.urls')),
path('messaging/', include('messaging.urls')),
path('re/', include('redirects.urls')),
path('stats/', include('stats.urls')),
-# 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.
#
import codecs
import csv
-# 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 datetime import date, datetime
from urllib.parse import quote_plus
-# 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.
#
import os