aboutsummaryrefslogtreecommitdiffstats
path: root/apps/core/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'apps/core/models.py')
-rw-r--r--apps/core/models.py60
1 files changed, 54 insertions, 6 deletions
diff --git a/apps/core/models.py b/apps/core/models.py
index 04d7582..7e98cbb 100644
--- a/apps/core/models.py
+++ b/apps/core/models.py
@@ -1,16 +1,36 @@
import uuid
+import gsxws
from django.db import models
from django.contrib.contenttypes import generic
from django.contrib.auth.models import AbstractUser
from django.contrib.contenttypes.models import ContentType
+from django.utils.translation import ugettext as _
from django.template.defaultfilters import slugify
+class User(AbstractUser):
+ sp = models.ForeignKey('ServiceProvider', null=True)
+
+ def __unicode__(self):
+ if self.first_name and self.last_name:
+ return self.first_name + ' ' + self.last_name
+ return self.username
+
+ def get_absolute_url(self):
+ return '/manage/users/%d/' % self.pk
+
+
class ServiceProvider(models.Model):
+ name = models.CharField(
+ unique=True,
+ max_length=128,
+ default='Apple Service Provider'
+ )
uuid = models.CharField(
unique=True,
max_length=36,
+ editable=False,
default=lambda: str(uuid.uuid4())
)
BACKEND_CHOICES = (
@@ -23,19 +43,29 @@ class ServiceProvider(models.Model):
default='servo',
choices=BACKEND_CHOICES
)
- name = models.CharField(
- max_length=128,
- default='Apple Service Provider'
- )
+
http_url = models.URLField(null=True, blank=True)
http_username = models.CharField(max_length=128, null=True, blank=True)
http_password = models.CharField(max_length=128, null=True, blank=True)
smtp_address = models.EmailField(null=True, blank=True)
servo_url = models.URLField(null=True, blank=True)
+ install_id = models.CharField(max_length=2)
+ is_active = models.BooleanField(default=True)
+ main_user = models.ForeignKey(User, null=True)
-class User(AbstractUser):
- sp = models.ForeignKey(ServiceProvider, null=True)
+ def __unicode__(self):
+ return self.name
+
+ def get_absolute_url(self):
+ return '/manage/providers/%d/' % self.pk
+
+
+class Subscription(models.Model):
+ sp = models.ForeignKey(ServiceProvider)
+ start_date = models.DateField()
+ end_date = models.DateField()
+ billing_period = models.PositiveIntegerField(default=12)
class TaggedItem(models.Model):
@@ -57,3 +87,21 @@ class TaggedItem(models.Model):
class Meta:
unique_together = ("content_type", "object_id", "tag",)
+
+
+class GsxAccount(models.Model):
+ sp = models.OneToOneField(ServiceProvider)
+ sold_to = models.CharField(max_length=10)
+ user_id = models.CharField(max_length=128)
+ password = models.CharField(max_length=256)
+ region = models.CharField(
+ max_length=3,
+ choices=gsxws.GSX_REGIONS,
+ verbose_name=_("Region")
+ )
+ environment = models.CharField(
+ max_length=2,
+ verbose_name=_("Environment"),
+ choices=gsxws.ENVIRONMENTS,
+ default=gsxws.ENVIRONMENTS[0][0]
+ )