Age | Commit message (Collapse) | Author |
|
Conflicts:
README.BRANDING
local_settings.py.example
packages/templatetags/package_extras.py
public/views.py
releng/views.py
settings.py
sitestatic/archnavbar/archnavbar.css
sitestatic/silhouette.png
templates/base.html
templates/packages/differences.html
templates/packages/opensearch.xml
templates/packages/search.html
templates/public/donate.html
templates/public/download.html
templates/public/feeds.html
templates/public/index.html
urls.py
|
|
|
|
|
|
Conflicts:
devel/views.py
feeds.py
local_settings.py.example
packages/management/commands/signoff_report.py
packages/views/flag.py
public/views.py
templates/404.html
templates/base.html
templates/devel/clock.html
templates/devel/index.html
templates/devel/packages.html
templates/devel/profile.html
templates/general_form.html
templates/mirrors/mirror_details.html
templates/mirrors/mirrorlist.txt
templates/mirrors/mirrorlist_generate.html
templates/mirrors/mirrorlist_status.txt
templates/mirrors/mirrors.html
templates/mirrors/status.html
templates/news/add.html
templates/news/delete.html
templates/news/list.html
templates/news/view.html
templates/packages/details.html
templates/packages/differences.html
templates/packages/files.html
templates/packages/flag.html
templates/packages/flag_confirmed.html
templates/packages/flagged.html
templates/packages/flaghelp.html
templates/packages/groups.html
templates/packages/opensearch.xml
templates/packages/packages_list.html
templates/packages/search.html
templates/packages/signoff_options.html
templates/packages/signoffs.html
templates/packages/stale_relations.html
templates/public/about.html
templates/public/art.html
templates/public/blank.html
templates/public/donate.html
templates/public/download.html
templates/public/feeds.html
templates/public/index.html
templates/public/keys.html
templates/public/svn.html
templates/public/userlist.html
templates/registration/login.html
templates/registration/logout.html
templates/releng/add.html
templates/releng/results.html
templates/releng/thanks.html
templates/todolists/list.html
templates/todolists/public_list.html
templates/todolists/todolist_confirm_delete.html
templates/todolists/view.html
templates/visualize/index.html
todolists/views.py
|
|
|
|
Conflicts:
devel/views.py
feeds.py
public/views.py
settings.py
sitestatic/archweb.js
templates/base.html
templates/devel/profile.html
templates/mirrors/status.html
templates/news/view.html
templates/packages/flaghelp.html
templates/packages/opensearch.xml
templates/public/download.html
templates/public/feeds.html
templates/public/index.html
templates/registration/login.html
templates/releng/results.html
templates/todolists/public_list.html
|
|
This is dirty, but it works. There is probably a better and cleaner way
to do all of this, but for now just fix it quickly.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
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>
|
|
We sometimes see some web bots and crawlers make HEAD requests to verify
existence of certain pages in the application. However, they are less
than kind as 20-50 requests might arrive at the same time, and package
search and details pages are some of the slowest rendering pages we have
due to the Django template engine.
Rather than waste time generating the content only to throw it away,
response as soon as we can with either a 404 or 200 response as
appropriate, omitting the 'Content-Length' header completely, which
seems to be acceptable by the HTTP spec.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This was added in Django 1.4, and ensures both GET and HEAD requests,
but not POST requests, are allowed through.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Whoops. Just introduced this when ensuring we look for both the packgae
in other repositories as well as any replacments.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This covers the case where we can't find the package in any other
repositories, but it was removed recently enough that we have a found
package update object.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This allows our normal keyword-based search to be index-optimized rather
than always doing full table scans. It requires the pg_trgm extension
which is shipped out of the box with any sane install of PostgreSQL.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This does not include templates
|
|
|
|
We don't see these called enough to make caching the data worth it.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
The get_profile() function is deprecated as of Django 1.5.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This gets some proper unittest skip decorator action now in addition to
adding more testing around everything.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Conflicts:
requirements.txt
requirements_prod.txt
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is a bit silly to encode in the URL, or at least makes it much
harder to screen out via robots.txt and other such things.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Switch it to a hardcoded value of 100 for all searches instead. It
didn't make much sense having a page number be part of the URL and a
limit value being part of the query string.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We had a ton of duplicate entries included due to the query implicitly
including a 'GROUP BY' clause on the default sorting by pkgname. Fix it
and cut the sitemap down to the correct size without duplicate entries.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This was added in Django 1.5 and allows saving only a subset of a
model's fields. It makes sense in a few cases to utilize it.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This reverts commit 20b64e42672d185821cc584dfa4b133ee259a144.
Django 1.5 fixed this issue and now parent objects are automatically
attached to their children when queries go through the related manager.
See "Caching of related model instances" in the release notes.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
It is a lot easier to just sort the list rather than mess with this
particular field, which didn't even allow you to specify a range or
direction to search in.
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>
|
|
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 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>
|
|
Bug #16519 in Django deprecates mimetype, so update our code
accordingly.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We were peppering the database with a bunch of queries here; using
prefetch_related and attach_maintainers can cut down the count
significantly.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Django doesn't attach the parent object to the child objects, even when
queried through the related manager. This causes up to 3 extra queries:
one to retrieve the package again, and one each for arch and repo
retrieval.
For a package like archboot, this drops the number of necessary queries
for the package page from 805 to 222 (yes, this is still too high) and
cuts the time spent waiting on the database from 505ms to 262ms.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
For todolist packages that have had their package removed, this will
allow the package name to continue to appear even after the linked
package has been deleted.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
These are super-simple, but it is also trivial to test.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
I hate writing tag messages.
Conflicts:
packages/templatetags/package_extras.py
templates/packages/flag.html
templates/packages/flaghelp.html
templates/public/download.html
templates/public/index.html
templates/public/svn.html
|
|
Signing page changes, other tweaks
Conflicts:
README
local_settings.py.example
requirements_prod.txt
urls.py
|
|
Django 1.4 upgrade and a bunch of other stuff
|
|
Conflicts:
requirements.txt
requirements_prod.txt
templates/base.html
templates/devel/clock.html
templates/public/download.html
templates/public/index.html
templates/releng/results.html
|
|
Remove some of the smarts and do less, but be better about properly
sorting the items as one might expect.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Rather than the old idiom of dict((k, v) for <> in <>).
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Defend against bogus URLs, mirrorlist no FTP by default
Conflicts:
templates/public/index.html
|
|
Quick release
Conflicts:
requirements.txt
requirements_prod.txt
|
|
Conflicts:
packages/templatetags/package_extras.py
|