From: smbaker Date: Fri, 12 Jul 2013 12:54:30 +0000 (-0700) Subject: tag type support X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=d3953f41f5d52332eba89a743e237b09acc5d941;p=plstackapi.git tag type support --- diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py index a1a21d6..45b5903 100644 --- a/planetstack/core/admin.py +++ b/planetstack/core/admin.py @@ -396,15 +396,18 @@ class SliverForm(forms.ModelForm): class ProjectAdmin(admin.ModelAdmin): exclude = ['enacted'] +class TagTypeAdmin(admin.ModelAdmin): + exclude = ['enacted'] + class TagAdmin(admin.ModelAdmin): exclude = ['enacted'] class SliverAdmin(PlanetStackBaseAdmin): form = SliverForm fieldsets = [ - ('Sliver', {'fields': ['ip', 'instance_name', 'slice', 'numberCores', 'image', 'node', 'deploymentNetwork']}) + ('Sliver', {'fields': ['ip', 'instance_name', 'slice', 'numberCores', 'image', 'key', 'node', 'deploymentNetwork']}) ] - list_display = ['ip', 'instance_name', 'slice', 'numberCores', 'image', 'node', 'deploymentNetwork'] + list_display = ['ip', 'instance_name', 'slice', 'numberCores', 'image', 'key', 'node', 'deploymentNetwork'] inlines = [TagInline] def formfield_for_foreignkey(self, db_field, request, **kwargs): @@ -708,6 +711,7 @@ admin.site.register(Slice, SliceAdmin) admin.site.register(Project, ProjectAdmin) admin.site.register(ServiceClass, ServiceClassAdmin) admin.site.register(Reservation, ReservationAdmin) +admin.site.register(TagType, TagTypeAdmin) if showAll: admin.site.register(Tag, TagAdmin) diff --git a/planetstack/core/models/tag.py b/planetstack/core/models/tag.py index 7c957a1..5d32de1 100644 --- a/planetstack/core/models/tag.py +++ b/planetstack/core/models/tag.py @@ -7,11 +7,14 @@ from django.contrib.contenttypes import generic # Create your models here. -class Tag(PlCoreBase): - +class TagType(PlCoreBase): + name = models.SlugField(help_text="The name of this tag", max_length=128) project = models.ForeignKey(Project, related_name='tags', help_text="The Project this Tag is associated with") - name = models.SlugField(help_text="The name of this tag", max_length=128) + def __unicode__(self): return u'%s' % (self.name) + +class Tag(PlCoreBase): + tagType = models.ForeignKey(TagType, related_name="tags", help_text="The name of the tag") value = models.CharField(help_text="The value of this tag", max_length=1024) # The required fields to do a ObjectType lookup, and object_id assignment @@ -20,5 +23,5 @@ class Tag(PlCoreBase): content_object = generic.GenericForeignKey('content_type', 'object_id') def __unicode__(self): - return self.name + return self.tagType.name