Age | Commit message (Collapse) | Author |
|
We can convert the entire search view to a generic class-based ListView.
This is still one of the more disgusting views in the application and
has a ton of logic scattered buckshot across several methods, but this
commit is not meant to address all of that in one go.
This is the last of the deprecated pieces I know of we are still using
in the codebase, so we should be relatively safe in the long run now for
an upgrade to the eventual next major Django release.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
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>
|
|
This was around from the time when we handled timezones sanely and
Django did not; now that we are on 1.4 we no longer need our own code to
handle this.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is another thing that Google and other search engines try to crawl
that no longer exists at times, so we should handle it gracefully.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We should handle the cases dealing with no filelist available, outdated
filelist, or a package without files, just as the HTML server-side page
does. Add a bit more info to the JSON returned so we can do so.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Now that we just generate this list in JS, we don't need this separate
code.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This allows us to do better than a generic 404 handler when we know a
package previously existed in a given repository, and should also make
things a bit nicer when getting sent in from a search engine to a page
that no longer exists.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This moves a lot of the package and group display logic into a new view
module, similar to what we already did earlier with a bunch of other
views.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Thank you database engines for all implementing such simple operations
as substring() and length() in different ways.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This adds a helper method to find the database engine in use, and then
skips code we shouldn't execute if we are doing this another way.
Note that this helper method could be useful for backend-specific code
paths elsewhere, such as custom SQL being called or lack of StdDev() in
sqlite3 out of the box.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This will be done instead of doing this logic at the application level,
which has some subtle race conditions. When two simultaneous threads
attempt to delete the same package, two update rows for the delete
action are inserted. When done at the database level, we can ensure a
one-to-one mapping between row operations and entries in this table.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
If we have duplicates in this list, it makes no sense to include them in
the list we send to the database.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
These models regularly sort by or limit by the created field, so adding
a index on the created database column makes sense.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This adds a Manager and log_update method to help log all updates made
to the packages table during reporead runs.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This will be used to track updates to package as we do them during
reporead. By storing enough relevant fields from the package object, we
should be able to produce a useful report on a regular basis of what has
been happening in the repositories.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Since commit 158be107e4ad6, we have been importing the Package model at
the top-level in this file, so we can kill this code that was never
updated. This should also give us back any performance hit we were
seeing from the delayed imports.
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>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
For something like "/extra/i686/apache-ant/", we can redirect to
"/extra/any/apache-ant/" without ambiguity. Previously this redirected
to the split packages listing with a single package, which was neither
correct nor really expected.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is basically what we do in PackageDepend already.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
As of Python 2.6, this is a builtin module that has all the same
functions and capabilities of the Django simplejson module. Additionally
simplejson is deprecated in the upcoming Django 1.5 release.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is why you should test this stuff with random input before rolling
it out. Whoops. URL that caught this problem:
/opensearch/packages/suggest?q=%D7%A0%D7%9F%D7%92%D7%9F
aka
/opensearch/packages/suggest?q=נןגן
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Unfortunately, "invalid" in this case includes spaces, which is a bit
crazy. MD5 the provided search term before using it as a cache key to be
safe.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Touch up the style slightly on the flag help popup to match the main
site style more closely.
When a logged-in user is flagging a package out of date, we have no need
for them to fill in the email field since we already have an email
address on file.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Otherwise the queryset returns nonsensical results. I find the design of
this less than obvious but so be it; we can ensure the results work
regardless of a default ordering on the model.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Both some simple cache headers as well as low-level results caching on
search terms suggestions.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
* Add a 64x64 icon as indicated in the Opensearch specification.
* Add suggestions capability and a new view providing suggestions based
on package name starting with the typed value.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
New (and slightly odd with regards to verbose_name) in Django 1.4. This
simply ensures a deployment in an IPv6 environment actually works as
expected. If you were using PostgreSQL as a database backend, you won't
be affected by this as the 'inet' type was already used, but at least
now you can edit the values in the admin without getting an error.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This still might change and should not be viewed as a public API yet.
This has been a longstanding request in FS#13026.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This will allow it to be used elsewhere, and doesn't really belong in
views anyway.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Given that we collect a lot of mirror status data, we can utilize it to
ensure the download link on the website actually works and newly-added
packages have actually been mirrored out. Add a method that attempts to
use the mirror status data to determine a mirror we should redirect our
download requests to. This can change on a regular basis, and falls back
to the old method if no mirror status data is available.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We already use HTTPS exclusively for wiki, bugs, forums, etc. and we
have it available for our other sites, so link only to the https://
protocol locations when pointing users at other sites.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Also change the default category to something legit.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is much more useful than the old contains match if you are trying
to narrow down your search to a specific package.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
When we read the repository databases, we get a filelist in sorted
order. Save time by returning the file list in that order rather than
resorting it based on filename and directory.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We do this for every other related package attribute, so do it here too.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Due to datetime formatting changes in Django 1.4, we know follow the
ECMA specification more closely and use 'yyyy-mm-ddThh:mm_ssZ' format.
As this could break existing users of the JSON data, bump the version.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This reverts commit 797185faed0555efb88a1e6a18e447548a9935fd. Now that
all packages in the Arch repos are signed, this column isn't very useful
as it just reflects the total package count.
Conflicts:
packages/views.py -> packages/views/search.py
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is most of the transition to Django 1.4 `USE_TZ = True`. We need to
ensure we don't mix aware and non-aware datetime objects when dealing
with datetimes in the code. Add a utc_now() helper method that we can
use most places, and ensure there is always a timezone attached when
necessary.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Until Django 1.3, the functions include(), patterns() and url() plus
handler404, handler500 were located in a django.conf.urls.defaults
module.
In Django 1.4, they live in django.conf.urls.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is not a very high bar to meet, and should cut down on at least a
few bogus or spam requests.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
These would cause page errors if passed anything not in the ASCII
character set. This change allows for packages to have names composed of
any Unicode characters, not just those in the ASCII set.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
* Add a default field to be used for latest() calls.
* Remove signal-based set of created date; instead, set it explicitly so
all of our packages and flag request have the exact same date and time
attached.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This is never currently called directly as a view method, but is used by
the normal package details view as a fallback if a package cannot be
located.
This also fixes an issue where looking up a package in a repo it is not
in returns the split details page for one package, which is incorrect
behavior.
Signed-off-by: Dan McGee <dan@archlinux.org>
|