summaryrefslogtreecommitdiffstats
path: root/packages/models.py
AgeCommit message (Collapse)AuthorFilesLines
2013-02-09Revert "Reduce query count when retrieving satisfiers and providers"Dan McGee1-12/+8
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>
2013-01-23Slight optimization when searching for removed packageDan McGee1-1/+2
Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-12Add get_associated_packages method to FlagRequestDan McGee1-0/+7
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-28Reduce query count when retrieving satisfiers and providersDan McGee1-8/+12
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-12Fix FS#32018, provides links always go to [testing] packagesDan McGee1-18/+6
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>
2012-11-16Use python set comprehension syntax supported in 2.7Dan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-10-27Cleanup meta model attributesDan McGee1-2/+5
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-15Ensure created is set when creating flag request via adminDan McGee1-1/+2
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-09Drop old flag request version columnDan McGee1-1/+0
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-09Begin split of flag request version column into partsDan McGee1-0/+14
Not sure why on only this one I decided to put all three parts in the same column. We don't do this anywhere else. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-08Push more default values down into the databaseDan McGee1-1/+1
This makes it easier to do manual manipulation/insertion/etc. at the database level, as well as just making things act more sane from an overall software stack perspective. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-08Make use of new ctypes ALPM APIDan McGee1-0/+23
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-04Include description in Depend unicode() outputDan McGee1-0/+7
This overrides the base class __unicode__ method. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-04Remove optional package depends columnDan McGee1-1/+0
This is now completely replaced by the deptype column. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-01Add new deptype column to package dependsDan McGee1-0/+9
This is more flexible than our existing 'optional' boolean and will allow us to import check and make depends into the database as well as what we are already doing. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-01Declare 'enums' at class scopeDan McGee1-7/+6
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-07-24Add index on package updates pkgname fieldDan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-07-23Add '410 Gone' support for packages moved out of repositoriesDan McGee1-0/+3
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>
2012-07-09Don't log package updates in Python when we have DB trigger supportDan McGee1-2/+13
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>
2012-07-02Add indexes on 'created' field to several package-related modelsDan McGee1-3/+3
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>
2012-07-02Log package updates during reporead invocationDan McGee1-0/+36
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>
2012-07-02Add new package Update modelDan McGee1-1/+63
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>
2012-07-02Remove no-longer necessary delayed imports of PackageDan McGee1-10/+7
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>
2012-05-19Drop old PackageDepend modelDan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-19Switch to usage of new Depend objectDan McGee1-4/+30
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-19Add new depends modelDan McGee1-0/+7
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-19Add a get_best_satisfier method to RelatedToBaseDan McGee1-1/+35
This is basically what we do in PackageDepend already. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-19Refactor an abstract base class out of conflicts/provides/replacesDan McGee1-24/+17
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-27Use GenericIPAddressField in flag request ip_addressDan McGee1-1/+3
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>
2012-02-07FlagRequest model behavior tweaksDan McGee1-1/+4
* 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>
2012-01-11Add old version string to saved flag requestsDan McGee1-0/+1
This makes it easier to match up a flag request with the package state at the time of flagging, and might also help to determine if flagging actions were legit. We only store it if it is the same across all packages to be marked. Also, move the various database write activities when flagging packages into a single transaction. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-12-12PyLint suggested cleanupsDan McGee1-1/+4
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-12-08Add a new FlagRequest modelDan McGee1-5/+29
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-12-08Remove auto-deletion of package relations on inactive usersDan McGee1-10/+1
We have a page where these can all be managed now, so best leave it alone in case someone accidentally marks a user inactive and all the data is lost. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-14Allow population of signoff specs with SVN commit messagesDan McGee1-1/+1
This pulls them from the latest SVN commit on trunk. We don't have a failproof method of getting the exact right commit, but this should be close if it is run on a regular basis via cron (aka hourly). Note that running locally, I needed the development version of South to get the migration included here to apply because of information_schema changes in the current version of MySQL. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-04Signoffs changes and improvementsDan McGee1-8/+20
* Better signoff report with more detail * Show signoff specification in signoffs view * Honor disabled/bad flags and display in approval column * Various other small bugfixes and tweaks Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-04Add signoff options form and data entry pageDan McGee1-11/+41
This allows the criteria and other information about certain signoffs to be overridden as necessary. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-03Refactor more package signoff stuffDan McGee1-2/+5
This sets up some shared utility code for use in a later package signoff email report command. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-11-03Many signoff page improvementsDan McGee1-1/+44
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-10-12Pylint suggested and other cleanupsDan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-07-29Add index to package groups name fieldDan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-07-06Refactor code to use new signoff modelDan McGee1-0/+2
This moves signoff creation and display to the new packages.Signoff model. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-07-06Add new packages signoff modelDan McGee1-1/+38
This one is centered around pkgbase, much as our PackageRelation object is. However, it also tracks all of the versioning fields we have in order to making joining against the current package testing list possible. Finally, additional metadata including a created date, an (optional) revoke date, and a comments field are added. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-07-06Move package signoff URL to more logical locationDan McGee1-2/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-07-05Move set_created_field() to shared utils classDan McGee1-8/+2
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-05-03Add a created date to package relationsDan McGee1-1/+12
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-03-23Fix package group unicode methodDan McGee1-1/+1
2011-03-23Add new package parts modelsDan McGee1-0/+44
This allows us to store conflicts, provisions (provides), and replacements in the database, things we weren't capturing before. All can be multivalued, just like License and PackageGroup. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-02-23Add stale package relations status screenDan McGee1-0/+10
For now it is read only. Display a few tables of various ways of detecting stale package relations. These include inactive users, pkgbase values that no longer exist, and users that are listed as maintainers that don't have the proper permissions for that package anymore. Signed-off-by: Dan McGee <dan@archlinux.org>
2011-02-19Remove maintainer relations if user marked inactiveDan McGee1-0/+12
These users are being marked inactive because they are no longer developers; thus they should have all of their maintainer relations removed from the database. This is one of two causes of "orphan" package relation objects, the other being pkgbase values that go out of existence. Signed-off-by: Dan McGee <dan@archlinux.org>