Commit Graph

86 Commits

Author SHA1 Message Date
Dan McGee
7c46d07f64 Use varied prime numbers for caching lengths
Signed-off-by: Dan McGee <dan@archlinux.org>
2014-10-19 18:12:58 -05:00
Dan McGee
3e70c8107b Remove now unnecessary empty models.py files
Signed-off-by: Dan McGee <dan@archlinux.org>
2014-09-11 18:35:36 -05:00
Dan McGee
0b0e2b9d2a Fix some caching issues on the front page
The return value from get_recent_updates() was too big for memcached due
to all the attached objects, so the cache never actually worked. This
sucks, because we ended up doing all the work in this function and most
of the time we didn't use it because template fragment caching kicked
in.

Remove the cache_function decorator from this method, and instead
implement delayed calling of the function so we don't compute values we
aren't going to use. Template fragment caching will help us in most
cases.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-12-14 15:06:26 -06:00
Dan McGee
92136757bf Proper support for revoked signatures
The 'valid' column wasn't quite right. Add a new 'revoked' column that
works similar to the one we have on keys and use it instead, properly
parsing the output from `gpg` signature data and looking for the magic
prefix string.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-09-30 20:45:10 -05:00
Dan McGee
49bf498879 Ensure only active mirror URLs are listed
This fixes things up on the download page as well as the individual
mirror details page.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-06-01 14:53:17 -05:00
Dan McGee
b7b2474064 Various minor code cleanups and fixes
Most of these were suggested by PyCharm, and include everything from
little syntax issues and other bad smells to dead or bad code.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-04-16 22:12:01 -05:00
Dan McGee
f579f88e17 Don't link to a one-element listing page from recent updates
If a package is built as a split package where pkgname != pkgbase, but
only one actual split package is produced, the link on the recent update
screen requires an extra click to get to the single package. Fix this by
linking directly to the package itself.

(Examples in current repos: ntfs-3g, python2-south)

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-03-11 09:40:38 -05:00
Dan McGee
e969da2d40 Run pngcrush and optipng over most static content
The programs have improved a bit and found some room for optimization,
especially in the static logo content. Some files were reduced in size
by 50% or more.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-02-03 13:38:39 -06:00
Dan McGee
23ef118ac1 Don't redefine mirror_url function every call
If we pull this out and define it at the top level once, we save the
interpreter a fair amount of work.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-19 10:37:16 -06:00
Dan McGee
cba22a378b Don't pull and sort mirror URLs unless we have to
On the download page, the explicit sorted() call was forcing evaluation
of the Django queryset, even if we never actually needed the results
because the template fragment was cached. Wrap it all in a callable
function which looks the same to the template, but saves us the cost of
evaluation every single page view.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-18 20:01:22 -06:00
Dan McGee
6f0ae6746b Drop country column from mirror table
We now always look for this information at the URL level, not the mirror
level. This simplifies quite a bit of code in and around the mirror
views.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-14 01:05:54 -06:00
Dan McGee
66850026ca Use content_type and not mimetype on HttpResponse()
Bug #16519 in Django deprecates mimetype, so update our code
accordingly.

Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-13 22:34:33 -06:00
Dan McGee
e7c331d361 Fix master key signing total counts
Commit 4c69911982 had an inadvertent side effect here; we need to
explicitly disable ordering for the annotate() to work correctly.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-27 22:51:20 -06:00
Dan McGee
730ac948b5 Add a __unicode__ method for RecentUpdate
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-27 19:59:52 -06:00
Dan McGee
f7331a0eca Add Release model to releng
This should prevent the need for monthly template updates from Pierre
and Thomas; best to just let them enter the data themselves and have it
show up on the website.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-11-20 19:16:25 -06:00
Dan McGee
6dd4d54bb0 Use Python 2.7 dictionary comprehension syntax
Rather than the old idiom of dict((k, v) for <> in <>).

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-11-16 16:37:52 -06:00
Dan McGee
45d81a9578 Move JSON keys view to public/ app
This seems like a more appropriate place, and now the visualization is
done here anyway so we should move the data backing it.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-11-13 10:21:02 -06:00
Dan McGee
67fef06fe8 Only show staging feeds to logged-in users
This doesn't prevent unauthenticated users from accessing the feeds, but
it should reduce clutter and confusion on the feeds index page for users
unlikely to need these feeds.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-09-25 00:49:54 -05:00
Dan McGee
3eed426027 Add structured data to developer listing pages
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-09-25 00:30:05 -05:00
Dan McGee
3f0c024754 PGP key handling updates
* Import signatures for all known keys, not just active developers
* Ensure we are only showing and accounting for active developers on the
  master keys page
* Add a new table showing signatures between developers

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-07-31 18:37:30 -05:00
Dan McGee
0cc369e985 Update several bits and pieces for staging packages
This will prevent [staging] packages from cluttering normal user's view
on the website, but allow us to still import everything from this
repository for developer use.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-07-31 00:09:28 -05:00
Dan McGee
76c37ce3ac Replace deprecated direct_to_template() with render() shortcut
Now that Django actually provides a concise way to use a RequestContext
object without instantiating it, we can use that rather than the old
function-based generic view that worked well to do the same.
Additionally, these function-based generic views will be gone in Django
1.5, so might as well make the move now.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-07-24 19:57:20 -05:00
Dan McGee
640e0f5864 Finish django countries implementation
* Add a migration to drop the old countries field.
* Update all templates/views/utility methods to point at the new country
  field and dereference it as necessary.
* Add the flags images to a few views where it makes sense.
* Cleanup the download page layout quite a bit.
* Bump the mirror status JSON version to 3; add country_code attribute.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-25 01:51:58 -05:00
Dan McGee
116751e4ba Rename mirror country fields to country_old in prep for normalization
We're going to move to using ISO 2 character codes via django countries,
so start by moving the old data out of the way first.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-25 00:00:36 -05:00
Dan McGee
ef88f3d5ef Add developer status table to master keys page
This shows the cross-product of each master key with each developer key
so you can see who has been signed, where signatures are missing, etc.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-03-29 11:37:07 -05:00
Dan McGee
7d8580b4b1 Add number of keys signed to master keys page
This really just makes me look bad, but an interesting fact none the
less for people to look at.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-03-21 15:52:40 -05:00
Dan McGee
749b044728 Ensure users only show up once on the Fellows page
If a user was in both Developer and TU groups, they would show up twice.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-03-09 11:26:00 -06:00
Dan McGee
6b16b9487a Adjust page and content caching lengths and decorators
Remove never_cache from many places now that we don't actually need it
since we aren't caching by default. Adjust our cache_function decorator
times be shorter values, and also randomize them a bit to make cache
invalidations not all line up.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-01-05 13:03:00 -06:00
Dan McGee
9ddbe26e4c Add a few cache headers and minor feed caching back in
Now that we aren't using the middleware, add cache headers on our
primary pages so we can prevent some repeat traffic, and cache all feeds
for five minutes.

Signed-off-by: Dan McGee <dan@archlinux.org>
2012-01-03 15:00:49 -06:00
Dan McGee
a60801bb7d PyLint suggested cleanups
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-12-11 19:52:27 -06:00
Dan McGee
73cd4adf9f Add CSS classes to front page package update objects
This adds the repo name, 'staging', and 'testing' as appropriate to a
classes field on the package updates object. This means we don't have to
update the CSS stylesheet to include hardcoded names of repositories
(e.g., 'kde-unstable').

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-12-09 09:29:15 -06:00
Dan McGee
943ef2e8e4 Convert to and enable staticfiles contrib application
This moves our site static files into the sitestatic directory if they
are shared resources, and also moves a handful of things (such as the
artwork logos) into application-specific static/ directories. This
allows the staticfiles contrib app to work after a few settings tweaks,
a run of collectstatic, and massaging the hardcoded '/media/' prefix out
of our templates.

Django 1.4 is going to make this a lot easier to move things to a CDN
and provides better template tags; for now this is setting the stage
before we can move to that.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-12-05 23:06:10 -06:00
Thomas Bächler
c9d51d08c9 download: add a link to the new netboot environment
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-12-05 17:46:18 -06:00
Dan McGee
025042ef0d Master keys: reduce query count, add default ordering
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-30 14:45:05 -06:00
Dan McGee
6b8ef446bc Add master key overview page
And a bunch of text that may suck, but is better than nothing.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-30 13:55:36 -06:00
Dan McGee
85657db05d Better support for non-latin full names
Add a 'latin_name' field to the user profile so we can better support
those developers with names in non-Latin scripts, and yet still show a
Latin name as necessary on the developer profile page. This field only
shows up if populated.

Also, use consistent sorting everywhere- rather than using username,
always use first_name and last_name fields.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-21 10:08:23 -06:00
Dan McGee
71e57570c2 Pylint suggested and other cleanups
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-10-11 19:29:15 -05:00
Thomas Bächler
6b15298483 download: add link to the ISO snapshots
Dan: use relative links if possible, use releng link from settings, fix
HTML closing tags.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-08-19 12:55:50 -05:00
Olivier Keun
a4895f0668 News frontpage layout changes
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-08-16 15:58:40 -05:00
Dan McGee
c5308b7583 Recent updates refactor
Pull out a few helpful objects and functions for use later elsewhere.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-07-05 09:48:10 -05:00
Dan McGee
4a9b6867a3 Refactor common select_related into manager method
For a Package object query, we almost always did .select_related('arch',
'repo). Refactor this into the manager as a 'normal()' method so we can
avoid sprinkling the same logic everywhere.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-15 15:50:14 -05:00
Dan McGee
0504fbeb92 Collapse all split and similar packages in recent updates list
I was getting sick of seeing the *-i18n packages completely blow away
anything else useful out of the recent updates sidebar. Revamp the logic
here again to do something about it. As we did before, grab packages
from the database and attempt to group them, but this time do it by only
repo and pkgbase.

From there, if we have packages in the group with a pkgname matching
pkgbase, we will link just those. If not, we will create some stub
objects that link to our relatively new virtual package overview screen.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-04-05 01:12:23 -05:00
Dan McGee
9d17938782 Move magic numbers into a function argument
Instead of having the '15 most recent' bit hardcoded, specify it as the
default but allow value to be overridden by any caller. We don't make
use of this yet, but it is not hard to do.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-03-13 12:03:37 -05:00
Dan McGee
5cd223680e Slight refactor of user list views
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-02-27 11:52:27 -06:00
Dan McGee
1fe833e18d Screen Fellows based on group membership as well
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-02-27 11:42:27 -06:00
Dan McGee
9acae339ff Simplify sorting attrgetter calls
Don't use dotted notation now that we have less-than implemented methods
on the respective objects (which also allows this code to work under
PyPy). Switch a lambda call to use attrgetter as well.

Signed-off-by: Dan McGee <dan@archlinux.org>
2010-11-27 14:56:15 -06:00
Dan McGee
82eb9de993 Make user profile a OneToOneField
We had this set up as a unique ForeignKey before, which adds some
indirection due to the RelatedManager object being there. By making it a
OneToOneField, we can get the profile object directly, enforce uniqueness,
and also use it in select_related() calls to make our profiles page a bit
more efficient.

Signed-off-by: Dan McGee <dan@archlinux.org>
2010-10-04 17:44:40 -05:00
Dan McGee
e847030d83 Switch another query to use is_download
Signed-off-by: Dan McGee <dan@archlinux.org>
2010-10-04 17:40:38 -05:00
Dan McGee
11f0db759b Add some select_related() magic
Made obvious when poking around with the Django debug toolbar.

Signed-off-by: Dan McGee <dan@archlinux.org>
2010-10-04 17:37:39 -05:00
Dan McGee
77f65bdc0c Allow donors to be invisible
Signed-off-by: Dan McGee <dan@archlinux.org>
2010-10-01 13:05:22 -05:00