in active_campaigns feed, exclude books w/o ebooks

pull/1/head
Raymond Yee 2014-07-25 13:49:12 -07:00
parent 0606519199
commit 6b7749b6be
2 changed files with 61 additions and 45 deletions

View File

@ -131,7 +131,8 @@ class active_campaigns(Facet):
"""
title = "Unglue.it Catalog: Books under Active Campaign"
feed_path = "active_campaigns"
works = models.Work.objects.filter(campaigns__status='ACTIVE').order_by('-created')
works = models.Work.objects.filter(campaigns__status='ACTIVE',
editions__ebooks__isnull=False).distinct().order_by('-created')
description= "With your help we're raising money to make these books free to the world."
def opds_feed_for_works(works, feed_path, title="Unglue.it Catalog"):

View File

@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:9c22749755ac63be304b4d1975df24fa2f5ae6afb32dd56374a060df17645c96"
"signature": "sha256:79e7f4505df4df7b3f16885d4d975832795dea0dd4b4d0790179dc25b15f8eee"
},
"nbformat": 3,
"nbformat_minor": 0,
@ -637,17 +637,7 @@
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 18,
"text": [
"['http://127.0.0.1:8000/download_ebook/1317/']"
]
}
],
"prompt_number": 18
"outputs": []
},
{
"cell_type": "heading",
@ -675,17 +665,7 @@
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 30,
"text": [
"'https://unglue.it/download_ebook/906/?feed=opds'"
]
}
],
"prompt_number": 30
"outputs": []
},
{
"cell_type": "heading",
@ -704,17 +684,7 @@
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 32,
"text": [
"[<Campaign: Campaign for Lagos__2060>, <Campaign: Campaign for Dave on Earth>, <Campaign: Campaign for Green Comet>, <Campaign: Campaign for 23rd Century Romance>, <Campaign: Campaign for Moebius Noodles>, <Campaign: Campaign for The Digital Public Domain: Foundations for an Open Culture>, <Campaign: Campaign for The Classic Short Story, 1870-1925: Theory of a Genre>, <Campaign: Campaign for Acts of the Apostles>, <Campaign: Campaign for The Pains>, <Campaign: Campaign for Cheap Complex Devices>, <Campaign: Campaign for Biodigital>, <Campaign: Campaign for Contact With Shadow>]"
]
}
],
"prompt_number": 32
"outputs": []
},
{
"cell_type": "code",
@ -724,17 +694,62 @@
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 34,
"text": [
"[<Work: 23rd Century Romance>, <Work: Acts of the Apostles>, <Work: Biodigital>, <Work: Cheap Complex Devices>, <Work: Contact With Shadow>, <Work: Dave on Earth>, <Work: Green Comet>, <Work: Lagos__2060>, <Work: Moebius Noodles>, <Work: The Classic Short Story, 1870-1925: Theory of a Genre>, <Work: The Digital Public Domain: Foundations for an Open Culture>, <Work: The Pains>]"
]
}
"outputs": []
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"must exclude campaigns without ebooks"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from regluit.core import models\n",
"from django.db.models import Q\n",
"\n",
"len(models.Work.objects.filter(campaigns__status='ACTIVE').order_by('-created'))"
],
"prompt_number": 34
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"works = models.Work.objects.filter(campaigns__status='ACTIVE',\n",
" editions__ebooks__isnull=False).distinct().order_by('-created')\n",
"[w.ebooks() for w in works]"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"works = Work.objects.all()\n",
"work = works[0]\n",
"work.ebooks()"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"models.Work.objects.filter(work)"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "heading",