diff options
author | Alexandru DAMIAN <alexandru.damian@intel.com> | 2014-10-09 12:37:30 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-10-30 13:39:51 +0000 |
commit | a0660718e6599538dd65cadadbc04c6adc951b57 (patch) | |
tree | 530aeb143dcd059ea74e075ae6df5bab9afd7823 /bitbake/lib/toaster/orm/models.py | |
parent | 97c0beb0eb127f05e70a9c3a7202b0cba16d7152 (diff) | |
download | poky-a0660718e6599538dd65cadadbc04c6adc951b57.tar.gz |
bitbake: toaster: improvements for admin pages
The default django URL validator marks git URLs as not valid,
so we change the default validators to a URLValidator-derived
that adds git and ssh protocol schemas and inhibits the
frontend URL validator.
We update the branch names based on the white-listed
branch names in the Releases name.
Adds proper class string to ease usage in admin section.
Other small improvements.
(Bitbake rev: 7d51f895bd56bd18f2258059b377851c2ce82114)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Conflicts:
bitbake/lib/toaster/orm/admin.py
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r-- | bitbake/lib/toaster/orm/models.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index 309f8ea5be..2fd504cb5b 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py | |||
@@ -51,6 +51,9 @@ class ToasterSetting(models.Model): | |||
51 | helptext = models.TextField() | 51 | helptext = models.TextField() |
52 | value = models.CharField(max_length=255) | 52 | value = models.CharField(max_length=255) |
53 | 53 | ||
54 | def __unicode__(self): | ||
55 | return "Setting %s" % self.name | ||
56 | |||
54 | class ToasterSettingDefaultLayer(models.Model): | 57 | class ToasterSettingDefaultLayer(models.Model): |
55 | layer_version = models.ForeignKey('Layer_Version') | 58 | layer_version = models.ForeignKey('Layer_Version') |
56 | 59 | ||
@@ -347,7 +350,7 @@ class Package(models.Model): | |||
347 | installed_name = models.CharField(max_length=100, default='') | 350 | installed_name = models.CharField(max_length=100, default='') |
348 | version = models.CharField(max_length=100, blank=True) | 351 | version = models.CharField(max_length=100, blank=True) |
349 | revision = models.CharField(max_length=32, blank=True) | 352 | revision = models.CharField(max_length=32, blank=True) |
350 | summary = models.CharField(max_length=200, blank=True) | 353 | summary = models.TextField(blank=True) |
351 | description = models.TextField(blank=True) | 354 | description = models.TextField(blank=True) |
352 | size = models.IntegerField(default=0) | 355 | size = models.IntegerField(default=0) |
353 | installed_size = models.IntegerField(default=0) | 356 | installed_size = models.IntegerField(default=0) |
@@ -420,7 +423,7 @@ class Recipe(models.Model): | |||
420 | name = models.CharField(max_length=100, blank=True) # pn | 423 | name = models.CharField(max_length=100, blank=True) # pn |
421 | version = models.CharField(max_length=100, blank=True) # pv | 424 | version = models.CharField(max_length=100, blank=True) # pv |
422 | layer_version = models.ForeignKey('Layer_Version', related_name='recipe_layer_version') | 425 | layer_version = models.ForeignKey('Layer_Version', related_name='recipe_layer_version') |
423 | summary = models.CharField(max_length=100, blank=True) | 426 | summary = models.TextField(blank=True) |
424 | description = models.TextField(blank=True) | 427 | description = models.TextField(blank=True) |
425 | section = models.CharField(max_length=100, blank=True) | 428 | section = models.CharField(max_length=100, blank=True) |
426 | license = models.CharField(max_length=200, blank=True) | 429 | license = models.CharField(max_length=200, blank=True) |
@@ -585,8 +588,8 @@ class LayerIndexLayerSource(LayerSource): | |||
585 | print "EE: could not connect to %s, skipping update: %s\n%s" % (self.apiurl, e, traceback.format_exc(e)) | 588 | print "EE: could not connect to %s, skipping update: %s\n%s" % (self.apiurl, e, traceback.format_exc(e)) |
586 | return | 589 | return |
587 | 590 | ||
588 | # update branches; only those that we already have names listed in the database | 591 | # update branches; only those that we already have names listed in the Releases table |
589 | whitelist_branch_names = map(lambda x: x.name, Branch.objects.all()) | 592 | whitelist_branch_names = map(lambda x: x.branch, Release.objects.all()) |
590 | 593 | ||
591 | branches_info = _get_json_response(apilinks['branches'] | 594 | branches_info = _get_json_response(apilinks['branches'] |
592 | + "?filter=name:%s" % "OR".join(whitelist_branch_names)) | 595 | + "?filter=name:%s" % "OR".join(whitelist_branch_names)) |
@@ -667,7 +670,7 @@ class LayerIndexLayerSource(LayerSource): | |||
667 | + "?filter=layerbranch:%s" % "OR".join(map(lambda x: str(x.up_id), Layer_Version.objects.filter(layer_source = self))) | 670 | + "?filter=layerbranch:%s" % "OR".join(map(lambda x: str(x.up_id), Layer_Version.objects.filter(layer_source = self))) |
668 | ) | 671 | ) |
669 | for ri in recipes_info: | 672 | for ri in recipes_info: |
670 | ro, created = Recipe.objects.get_or_create(layer_source = self, up_id = ri['id'], layer_version = Layer_Version.objects.get(layer_source = self, up_id = mi['layerbranch'])) | 673 | ro, created = Recipe.objects.get_or_create(layer_source = self, up_id = ri['id'], layer_version = Layer_Version.objects.get(layer_source = self, up_id = ri['layerbranch'])) |
671 | 674 | ||
672 | ro.up_date = ri['updated'] | 675 | ro.up_date = ri['updated'] |
673 | 676 | ||
@@ -691,6 +694,9 @@ class BitbakeVersion(models.Model): | |||
691 | branch = models.CharField(max_length=32) | 694 | branch = models.CharField(max_length=32) |
692 | dirpath = models.CharField(max_length=255) | 695 | dirpath = models.CharField(max_length=255) |
693 | 696 | ||
697 | def __unicode__(self): | ||
698 | return "%s (%s)" % (self.name, self.branch) | ||
699 | |||
694 | 700 | ||
695 | class Release(models.Model): | 701 | class Release(models.Model): |
696 | name = models.CharField(max_length=32, unique = True) | 702 | name = models.CharField(max_length=32, unique = True) |
@@ -734,7 +740,7 @@ class Layer(models.Model): | |||
734 | vcs_url = GitURLField(default = None, null = True) | 740 | vcs_url = GitURLField(default = None, null = True) |
735 | vcs_web_file_base_url = models.URLField(null = True, default = None) | 741 | vcs_web_file_base_url = models.URLField(null = True, default = None) |
736 | 742 | ||
737 | summary = models.CharField(max_length=200, help_text='One-line description of the layer', null = True, default = None) | 743 | summary = models.TextField(help_text='One-line description of the layer', null = True, default = None) |
738 | description = models.TextField(null = True, default = None) | 744 | description = models.TextField(null = True, default = None) |
739 | 745 | ||
740 | def __unicode__(self): | 746 | def __unicode__(self): |