add nodes tab to site admin
[plstackapi.git] / planetstack / core / models / node.py
1 import os
2 from django.db import models
3 from core.models import PlCoreBase
4 from core.models import Site, SiteDeployment
5 from core.models import Tag
6 from django.contrib.contenttypes import generic
7
8 # Create your models here.
9
10 class Node(PlCoreBase):
11     name = models.CharField(max_length=200, unique=True, help_text="Name of the Node")
12     site_deployment = models.ForeignKey(SiteDeployment, related_name='nodes')
13     site = models.ForeignKey(Site, null=True, blank=True, related_name='nodes')
14     tags = generic.GenericRelation(Tag)
15
16     def __unicode__(self):  return u'%s' % (self.name)
17
18     def save(self, *args, **kwds):
19         if self.site is None and self.site_deployment is not None:
20             self.site = self.site_deployment.site
21
22         super(Node, self).save(*args, **kwds)