From 2b935b720b87bca2da3ef58cdb0efb9899c51115 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 27 Mar 2009 22:45:59 -0700 Subject: [PATCH] IGN:... --- src/calibre/www/apps/feedjack/fjlib.py | 2 -- src/calibre/www/apps/feedjack/views.py | 6 ++--- src/calibre/www/planet/README.rst | 25 +++--------------- src/calibre/www/planet/settings.py | 2 +- src/calibre/www/planet/test/planet.db | Bin 0 -> 130048 bytes src/calibre/www/planet/test/test.sh | 4 +++ src/calibre/www/publish.sh | 4 +++ src/calibre/www/settings.py | 6 +++++ src/calibre/www/static/styles/base.css | 3 ++- src/calibre/www/static/styles/planet.css | 3 +-- src/calibre/www/templates/base.html | 7 ++--- .../templates/feedjack/default/post_list.html | 18 ++++++------- 12 files changed, 38 insertions(+), 42 deletions(-) create mode 100644 src/calibre/www/planet/test/planet.db create mode 100755 src/calibre/www/planet/test/test.sh create mode 100755 src/calibre/www/publish.sh diff --git a/src/calibre/www/apps/feedjack/fjlib.py b/src/calibre/www/apps/feedjack/fjlib.py index 555dfe1707..e13fd5e5af 100644 --- a/src/calibre/www/apps/feedjack/fjlib.py +++ b/src/calibre/www/apps/feedjack/fjlib.py @@ -6,7 +6,6 @@ Gustavo Picón fjlib.py """ -from django.conf import settings from django.db import connection from django.core.paginator import Paginator, InvalidPage from django.http import Http404 @@ -125,7 +124,6 @@ def get_extra_content(site, sfeeds_ids, ctx): ctx['feeds'] = [] ctx['last_modified'] = '??' ctx['site'] = site - ctx['media_url'] = settings.MEDIA_URL def get_posts_tags(object_list, sfeeds_obj, user_id, tag_name): """ Adds a qtags property in every post object in a page. diff --git a/src/calibre/www/apps/feedjack/views.py b/src/calibre/www/apps/feedjack/views.py index d87b368a91..c1f31eb908 100644 --- a/src/calibre/www/apps/feedjack/views.py +++ b/src/calibre/www/apps/feedjack/views.py @@ -11,7 +11,7 @@ from django.utils import feedgenerator from django.shortcuts import render_to_response from django.http import HttpResponse from django.utils.cache import patch_vary_headers -from django.template import Context, loader +from django.template import RequestContext, loader from calibre.www.apps.feedjack import models, fjlib, fjcache @@ -58,7 +58,7 @@ def blogroll(request, btype): template = loader.get_template('feedjack/%s.xml' % btype) ctx = {} fjlib.get_extra_content(site, sfeeds_ids, ctx) - ctx = Context(ctx) + ctx = RequestContext(request, ctx) response = HttpResponse(template.render(ctx) , \ mimetype='text/xml; charset=utf-8') @@ -138,7 +138,7 @@ def mainview(request, tag=None, user=None): sfeeds_ids)) response = render_to_response('feedjack/%s/post_list.html' % \ - (site.template), ctx) + (site.template), ctx, context_instance=RequestContext(request)) # per host caching, in case the cache middleware is enabled patch_vary_headers(response, ['Host']) diff --git a/src/calibre/www/planet/README.rst b/src/calibre/www/planet/README.rst index 2ced5b6c76..8f40603284 100644 --- a/src/calibre/www/planet/README.rst +++ b/src/calibre/www/planet/README.rst @@ -1,29 +1,12 @@ Test ===== +Calibre planet can be run either in development mode or deployment mode. For testing, +it should be run in development mode as follows: + * Install django - * Run ``python manage.py syncdb`` to create database in /tmp/planet.db - * Run ``python manage.py runserver`` - * Goto `http://localhost:8000/admin` and create Feeds, Sites and Subscribers + * ``cd test && ./test`` * Planet is at `http://localhost:8000` -Update feeds by running:: - - DJANGO_SETTINGS_MODULE=calibre.www.planet.settings feedjack_update.py - -Deploy -======= - - * Add settings for deployment environment to settings.py - * In particular setup caching - - * Run python manage.py syncdb - * Add super user when asked - - * Setup Apache - - * Goto /admin and add feeds - - diff --git a/src/calibre/www/planet/settings.py b/src/calibre/www/planet/settings.py index 5c3a80b568..cd2f56ceb1 100644 --- a/src/calibre/www/planet/settings.py +++ b/src/calibre/www/planet/settings.py @@ -2,7 +2,7 @@ from calibre.www.settings import DEBUG, TEMPLATE_DEBUG, ADMINS, MANAGERS, \ TEMPLATE_LOADERS, TEMPLATE_DIRS, MIDDLEWARE_CLASSES, MEDIA_ROOT, \ - MEDIA_URL, ADMIN_MEDIA_PREFIX + MEDIA_URL, ADMIN_MEDIA_PREFIX, TEMPLATE_CONTEXT_PROCESSORS if not DEBUG: MEDIA_URL = 'http://planet.calibre-ebook.com/site_media/' diff --git a/src/calibre/www/planet/test/planet.db b/src/calibre/www/planet/test/planet.db new file mode 100644 index 0000000000000000000000000000000000000000..413abd4875ec3733a3446dd8897a36edb0f49ae8 GIT binary patch literal 130048 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 literal 0 HcmV?d00001 diff --git a/src/calibre/www/planet/test/test.sh b/src/calibre/www/planet/test/test.sh new file mode 100755 index 0000000000..64a0976462 --- /dev/null +++ b/src/calibre/www/planet/test/test.sh @@ -0,0 +1,4 @@ +#!/bin/sh +cp planet.db /tmp +cd .. +python manage.py runserver diff --git a/src/calibre/www/publish.sh b/src/calibre/www/publish.sh new file mode 100755 index 0000000000..7a653f06f2 --- /dev/null +++ b/src/calibre/www/publish.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +ssh divok bzr up /usr/local/calibre +ssh divok /etc/init.d/apache2 graceful diff --git a/src/calibre/www/settings.py b/src/calibre/www/settings.py index 546ea9b0ab..d20185c943 100644 --- a/src/calibre/www/settings.py +++ b/src/calibre/www/settings.py @@ -75,6 +75,12 @@ else: '/usr/local/calibre/src/calibre/www/templates', ) +TEMPLATE_CONTEXT_PROCESSORS = ( + "django.core.context_processors.auth", + "django.core.context_processors.debug", + "django.core.context_processors.i18n", + "django.core.context_processors.media" + ) diff --git a/src/calibre/www/static/styles/base.css b/src/calibre/www/static/styles/base.css index d1b19ed5d0..c744301796 100644 --- a/src/calibre/www/static/styles/base.css +++ b/src/calibre/www/static/styles/base.css @@ -1,6 +1,6 @@ body { font-family: sansserif; - background-color: #eeeeee; + background-color: #f6f6f6; } img { @@ -12,6 +12,7 @@ img { border-bottom: 1px solid black; margin-bottom: 20px; height: 100px; + background-color: #d6d6d6; overflow: hidden; } diff --git a/src/calibre/www/static/styles/planet.css b/src/calibre/www/static/styles/planet.css index 084576bf5f..8cbca4a359 100644 --- a/src/calibre/www/static/styles/planet.css +++ b/src/calibre/www/static/styles/planet.css @@ -117,9 +117,8 @@ div.post-content { border-right: 1px dotted #ccc; } div.post-content li { - margin: 0; - padding: 0; line-height: 130%; + margin-bottom: 0.6em; } div.post-content table{ border: 0; diff --git a/src/calibre/www/templates/base.html b/src/calibre/www/templates/base.html index 245d7edc9b..1453d4ab73 100644 --- a/src/calibre/www/templates/base.html +++ b/src/calibre/www/templates/base.html @@ -7,14 +7,15 @@ --> {% block title %}calibre - E-book management{% endblock %} - + + {% block extra_header %} {% endblock %}

- + {% block header_text %}e-book management{% endblock %}

@@ -26,7 +27,7 @@ {% block footer_text %} Created by Kovid Goyal. Powered by - Django + Django    {% endblock %} diff --git a/src/calibre/www/templates/feedjack/default/post_list.html b/src/calibre/www/templates/feedjack/default/post_list.html index 94a8e0ee69..67b81a773e 100644 --- a/src/calibre/www/templates/feedjack/default/post_list.html +++ b/src/calibre/www/templates/feedjack/default/post_list.html @@ -4,8 +4,8 @@ {% block header_text %}Planet{% endblock %} {% block extra_header %} - - + + {% endblock %} {% block content %} @@ -31,10 +31,10 @@
- • - • - • - + • + • + • +
@@ -50,7 +50,7 @@
+ src="{{ MEDIA_URL }}/img/faces/{{ item.subscriber.shortname}}.png" alt="" />
{{ item.feed.title }}
@@ -90,7 +90,7 @@ Planet Calibre is a window into the world, work and lives of Calibre developers and contributors.

-If you have a question or would like your blog added to the feed. Please email +If you have a question or would like your blog added to the planet, please email Kovid Goyal.

@@ -151,7 +151,7 @@ title="feed (last modified: {{ feed.feed.last_modified }})" title="feed" {% endif %} > -feed +feed {{ feed.name }} {% endfor %}