summaryrefslogtreecommitdiff
path: root/main/models.py
AgeCommit message (Collapse)Author
2013-01-20Fix error in get_requiredby() when checking providesrelease_2013-01-20Dan McGee
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>
2013-01-20Query performance enhancements in get_requiredby()Dan McGee
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>
2012-12-31Minor coding style tweaksDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-31Add 'created' field to packages modelDan McGee
This will be used to eventually implement the UI side of FS#13441, but to do that, we first need the data. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-28Retrieve arch and repo too when calling reverse_conflictsDan McGee
Since we need these in the template for any details links, we might as well pull them back from the database in one query rather than three. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-28Reduce query count when retrieving satisfiers and providersDan McGee
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>
2012-12-28Remove old todo list modelsDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-04get_latest_by cleanupsDan McGee
Fix some that referenced non-existent attributes, and add the attribute to other models. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-11-27Don't cache package properties as aggressivelyDan McGee
For package signatures, it turns out it is way cheaper to just parse the signature again rather than going though all the decorator and cache_function_key business. This speeds up the mismatched signatures report significantly once this is removed. For base_package, given that we only call it once from our package details template, it makes little sense to cache the result. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-11-16Use python set comprehension syntax supported in 2.7Dan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-10-26Cleanup meta model attributesDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-09-30Remote errant print() statementDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-09-30PEP8 cleanups for main/modelsDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-09-04Filter out spam flag requests on package details pageDan McGee
No need to show these as a matching request. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-20Don't blow up when pgp signature data is '' on a packageDan McGee
We handled None/NULL correctly, but not the empty string. Fix this corner case. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-20Mark nullable fields as blank on package modelDan McGee
This helps when creating test packages through the Django admin. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-15Ensure reverse conflicts match architecture if applicableDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-08Migrate flag request version info to new formatDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-07Make use of new ctypes ALPM APIDan McGee
We can use this when filtering down lists of depends, required by, conflicts, etc. to ensure we are honoring the version specifications the same way pacman would. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-07Add reverse conflicts to package detailsDan McGee
This is a place where calling vercmp could come in really handy. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-05Smarter handling of multilib packages in "Versions Elsewhere"Dan McGee
We can do some manipulation of the pkgname to ensure multilib packages show up here, as well as showing the non-multilib versions in the list when viewing the multilib packages. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-04Make adjustments for optional -> deptype conversionDan McGee
Very little dealt directly with this field. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-07-31Update several bits and pieces for staging packagesDan McGee
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-24Remove custom utc_now() function, use django.utils.timezone.now()Dan McGee
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>
2012-05-18Drop old PackageDepend modelDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-18Switch to usage of new Depend objectDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-18Simplify get_best_satisfier and get_providersDan McGee
We always passed values in that came off the containing package object; we can access these directly in the methods themselves. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-02Ensure order_by default value is cleared when using distinct()Dan McGee
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>
2012-04-21Add an index on packages last update columnrelease_2012-04-21Dan McGee
Not sure why we don't have this already, given both the home page, the packages page when ordered by last update, and the generated feeds would see immediate benefit from it. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-20UserProfile model and fields shuffleDan McGee
Move this model into the devel/ application, and move the PGPKeyField which is used only by these models into the application as well. This involves updating some old migrations along the way to ensure we don't reference a field class that no longer exists. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-03Include category when linking to bug reportsDan McGee
Also change the default category to something legit. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-03-26Rename 'packagedepend_set' attribute to 'depends'Dan McGee
We do this for every other related package attribute, so do it here too. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-03-24Revert "Add some dev dashboard info regarding signed package count"Dan McGee
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>
2012-03-23Make all datetime objects fully timezone awareDan McGee
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>
2012-03-08Show signature data on package details pageDan McGee
Now that we have a way to decode and process the signature data, we can match the key_id to a known developer if possible and show this data on the package page. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-02-07Show the latest flag request on package details if out of dateDan McGee
This only shows up for logged in users, but might be helpful for developers browsing around the site, especially if they did not receive the email themselves, or in the case of orphan packages. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-01-05Adjust page and content caching lengths and decoratorsDan McGee
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>
2011-12-11PyLint suggested cleanupsDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-12-08Add a new FlagRequest modelDan McGee
This will be used to store all of the submitted data we get via flag out of date forms on the website. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-30Add master key overview pageDan McGee
And a bunch of text that may suck, but is better than nothing. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-30Move main fields to separate moduleDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-21Better support for non-latin full namesrelease_2011-11-21Dan McGee
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-17Change package description to a text fieldrelease_2011-11-17Dan McGee
No need to have length restrictions on this. Although long descriptions are frowned upon, we shouldn't truncate them if someone really wants one. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-17Ensure reporead is protected against simultaneous runsDan McGee
This adds a bunch of transaction magic and SELECT FOR UPDATE stuff to reporead to cope with the now-concurrent runs of reporead we get when invoked from our inotify-based updater. The collision occurs with 'any' architecture packages as both repo databases contain the new version, and the updates occur at exactly the same time. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-03Make maintainer lookup on todo lists fastDan McGee
This is rather sick to look at. Sorry, Django gives me no other choice. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-03Add new attach_maintainers() utility methodDan McGee
This allows us to alleviate the N+1 query problem when we want maintainer data for a queryset of packages. We use it on signoffs here; we should also be able to apply this to the todolist section where this problem has existed for some time. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-03Add URL to todolist emailDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-03Many signoff page improvementsDan McGee
Add a new 'SignoffSpecification' model which will capture metadata regarding a specific package if it differs from the norm- e.g. more or less than 2 required signoffs, is known to be bad, a comment from the maintainer, etc. The groundwork is laid here; much of this will still need to be wired up in the future. Enhance the view with a lot more JS prettiness and add revoking of signoffs. The signoff page can be filtered and the links and all the fun stuff are totally dynamic now. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-01Add created column to Donor modelDan McGee
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-10-21Add a generate_keyring commandDan McGee
This grabs all the PGP keys from the developer profiles and adds them to the keyrings. Obviously we may want to do more in the future such as filter by groups, active status, etc. but this is just a first iteration. Signed-off-by: Dan McGee <dan@archlinux.org>