Age | Commit message (Collapse) | Author | Files | Lines |
|
We had a lot going on here in the news section as far as Django template
tags go, so remove some whitespace to prevent so many empty lines from
being ommitted. This doesn't remove all of it from the generated HTML,
but does cut it down significantly.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
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>
|
|
|
|
When there was no longer an attached package, running in template debug
mode showed we were trying to dereference a variable that didn't exist.
Fix the issue by adding a bit more to the if conditional block.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Move things up that don't belong to the torrent section; make magnet
link more prominent by using a bulleted list.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We no longer need to link externally to these items since we have all
the data available in the web application now.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This allows them to be overridden and changed in a central location,
like we do with the SVN URL, PXE boot URL, etc.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
And also fix up a place where we dereferenced a variable in a template
that doesn't exist.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This works better in most cases since we need the architecture and
repository objects at some point during the view process.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Add JS tablesorter code and add some style to the yesno column.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Because some attributes are optional or otherwise not auto-magically
picked up by Django, we can help the performance of loading these pages
a lot by forcing a select_related() on the queryset used by the admin.
For something like signoff_specifications, this drops the query count
from ~107 to 9 queries.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Now that we are using a database that doesn't stink, it makes more sense
to do all of the stuff we need to do down at the database level. This
helps a lot when 500+ packages are in play at a given time, such as
some of our larger rebuild todo lists.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
If one exists, it is easy enough to show it here so in-progress
todolists can easily be cross-checked with the current state of the
repository.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This should finally let us crank up the Expires: header to far-future
values in production since updates to JS and CSS files will take effect
immediately.
Some minor removals were made from retro stylesheets as they were
referencing files that don't actually exist because they were missing
from the web archive.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Move some of the not-so-frequently used resources further down in the
list of URLs, which will ever so slightly speed up the resolver.
Sitemaps don't need to be checked near as often, for instance.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
The query refactor in commit 1b1b516bd removed a queryset I didn't
realize was getting used elsewhere in the function.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Let's just go with the Django database option for PostreSQL autocommit
mode instead.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
For packages with particularly long lists of provides (e.g. perl), the
query was getting a bit out of control with the list of names passed in.
However, changing it to simply do a subquery resulted in some really
poor planning by PostgreSQL. Doing this as a custom 'WHERE' clause
utilizing the 'UNION ALL' SQL operator works very well.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Make it long enough to support a full-form IPv6 address with a subnet.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
It should be unique anyway, but it is especially important now that we
are using it in URL patterns for lookup.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This allows uploading of the actual torrent file itself into the webapp
and then pulling the relevant pieces of information out of it.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Add a file_size field which we will use in the RSS feed, and also add a
field for future storage of the torrent data itself.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
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>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is our first use of enclosures on the site as well.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
If we implement the __eq__ and __hash__ methods, we can use a set to
gather package difference objects and make deduplication of objects a
lot more efficient.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We need this for the package files sitemap; else we are doing one query
per package to retrieve this field. Whoops.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
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>
|
|
This uses a new template tag to avoid repeating construction of the
necessary HTML element all over the place. The site should look exactly
as it did before, except now you don't have to download 20+ images to
see some pages.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
* Point default image at a blank spot in the PNG.
* Remove dead style.
* Don't use any crazy prefix matching stuff; just have separate class
for default view.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Remove any redundant width and height declarations from individual
countries and shorten the CSS class names.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This moves most migrations to the v2 format that have been presenting
some issues. One missing depends_on relationship has been added, and we
allow an index to not be dropped if it does not exist due to the
shittyness in sqlite3 actually keeping indexes across DDL on that table.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
The reason for this is documented in the middleware itself. Without
this, pgbouncer is of little use to us since it has to throw away every
connection we try to route through it because of unclean disconnects.
In theory, with the switch to using pgbouncer for all WSGI originating
connections and adding this middleware, we should see a notable decrease
in connection time to the database.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
A few minor things are fixed here. One is PostgreSQL, and more
specifically pgbouncer, don't like it when the connection is closed
after psycopg2 has started an implicit transaction even for read-only
queries. Ensure we call commit as our last database action in all cases.
The other is related- Django in management commands doesn't ever call
close on any database connection you may have been using, so PostgreSQL
gets mad about this fact and logs a message saying such. Close the
connection explicitly when we are done with it to play nice.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Just as we do for the normal status HTML view.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Less noticeable in production as the templates don't show
'@@@INVALID@@@' there, but we were trying to access attributes that
don't actually exist on certain mirror objects.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
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>
|