@classmethod
def get(cls, sth):
object_type = ContentType.objects.get_for_model(sth)
+ should_keys = set([sth.id])
+ if isinstance(sth, Tag):
+ should_keys = set(b.pk for b in Book.tagged.with_any((sth,)))
try:
obj = cls.objects.get(content_type=object_type, object_id=sth.id)
f = open(obj.pickle.path)
- conts = cPickle.load(f)
+ keys, conts = cPickle.load(f)
f.close()
+ if set(keys) != should_keys:
+ obj.delete()
+ raise cls.DoesNotExist
return conts
except cls.DoesNotExist:
if isinstance(sth, Book):
raise NotImplemented('Lesmianator continuations: only Book and Tag supported')
c = cls(content_object=sth)
- c.pickle.save(sth.slug+'.p', ContentFile(cPickle.dumps(conts)))
+ c.pickle.save(sth.slug+'.p', ContentFile(cPickle.dumps((should_keys, conts))))
c.save()
return conts
</a>
</p>
+ <h2>Nowy Leśmianator na Walentynki</h2>
+ <a href="{% url lesmianator %}" title="Big Heart of Art - 1000 Visual Mashups by qthomasbower, on Flickr">
+ <img style="float:left;padding:15px 10px 0 0"
+ src="http://farm4.static.flickr.com/3612/3470650293_60b27d6539_t.jpg" width="100" height="99"
+ alt="Big Heart of Art - 1000 Visual Mashups" /></a>
+ <p>Tym razem to Ty decydujesz, co wpadnie do miksera – a efekt możesz pokazać znajomym!
+ </p>
+ <p class="see-more" style="clear:both"><a href="{% url lesmianator %}">{% trans "Twórzże się!" %} ⇒</a></p>
+
+
<h2>Wolne Okładki</h2>
<p>Tworzymy okładki do utworów z biblioteki Wolne Lektury.</p>
- <p><a href='http://wolneokladki.pl/'><img src='/static/img/wolneokladki-logo.png' alt='Wolne Okładki' width='300' height='117' /></a></p>
+ <p><a href='http://wolneokladki.pl/'><img src='/static/img/wolneokladki-logo.png' alt='Wolne Okładki' width='250' height='98' /></a></p>
<p class="see-more"><a href="http://wolneokladki.pl/" title="Wolne Okładki">{%trans "See more" %} ⇒</a>
{% comment %} <h2>{% trans "Books for every school level" %}</h2>
<li><a href="">{% trans "gymnasium" %}</a></li>
<li><a href="">{% trans "high school" %}</a></li>
</ul> {% endcomment %}
-
- <h2>Leśmianator — poeta automagiczny</h2>
- <p>Poezja z Wolnych Lektur przepuszczona przez mikser. Stwórz własny wiersz klikając w <a href="{% url lesmianator %}" rel="nofollow">link</a>.</p>
- <p class="see-more"><a href="{% url lesmianator %}">{% trans "Twórzże się!" %} ⇒</a></p>
<h2>{% trans "Wolne Lektury Widget" %}</h2>
<p>{% trans "Place our widget - search engine for Wolne Lektury which gives access to free books and audiobooks - on your homepage! Just copy the HTML code below onto your page:" %}</p>
<div id="books-list">
<p>Leśmianator tworzy wierszmiksy – dzięki niemu
<a href="{% url new_poem %}">napiszesz wiersz jednym kliknięciem</a>.
- W nowej odłonie nowe możliwości zabawy – teraz możesz zdecydować, co wrzucasz do miksera,
- a swoimi dziełami podzielić się z przyjaciółmi!</p>
+ W nowej odsłonie nowe możliwości zabawy – teraz możesz zdecydować, co wrzucasz do miksera,
+ a swoimi dziełami podzielić się z przyjaciółmi!</p>
<p>Przygotowaliśmy kilka propozycji na start – możesz wybrać jedną z nich,
albo ułożyć sobie własną, niepowtarzalną mieszankę.</p>
<ul>