This will work out well when using memcached in production, and should just
fall back to using the DB when developing locally with no cache or any other
sort of caching.
Signed-off-by: Dan McGee <dan@archlinux.org>
Implements FS#13741. A preview function is also added so working with news
items is easier to make sure you get the formatting right.
This will result in some older news items looking a bit weird if they didn't
put linebreaks in all the right places, we can fix a few of these as we
notice them.
Signed-off-by: Dan McGee <dan@archlinux.org>
Otherwise it is really confusing when you make template changes during
development and they don't show up immediately.
Signed-off-by: Dan McGee <dan@archlinux.org>
We should be well-protected by the "Vary: Cookie" header, and if we aren't
then we need to fix those pages that matter. This is the final step in
getting at least the heaviest hit part of our site to be served without any
Vary headers at all- the feeds.
Signed-off-by: Dan McGee <dan@archlinux.org>
This is also another step in making sure we don't unnecessarily access the
Django session object and thus add a Vary cache control header we don't
want.
Signed-off-by: Dan McGee <dan@archlinux.org>
This was having some serious effects on caching as we would always have to
access the user in the session, marking every page with a "Vary: Cookie"
header. This is the start of stamping that out. The way we get the user for
news item creation is now more similar to that from the todo lists, but not
quite. That should be adjusted to be more like the news item creation.
Signed-off-by: Dan McGee <dan@archlinux.org>
This is to address a rather large issue with caching of feed objects in
Django. Because they are built up using an XML library that does multiple
writes on a file-like object, a single feed object, even when pulled from
memcached, generates 1582 writes to the open socket rather than the optimal
one it could do.
Some version of this fix will be making it upstream, but I need to figure
out how to approach that before I do so and for now this will address one of
our larger performance issues on the live site since the packages feed is
hit as often as it is.
Signed-off-by: Dan McGee <dan@archlinux.org>
Thanks to Evangelos Foutras for the inspiration. Recreated from scratch only
to make sure everything is in sync.
From this point on, you will need to have the 'south' Django/Python package
installed to use archweb.
Signed-off-by: Dan McGee <dan@archlinux.org>
We aren't going to enable this because it is a restricted-access site, so no
need in keeping the crud around.
Signed-off-by: Dan McGee <dan@archlinux.org>