summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/orm/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r--bitbake/lib/toaster/orm/models.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index b67afe139c..f4064296bc 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -23,10 +23,48 @@ from django.db import models
23from django.db.models import F 23from django.db.models import F
24from django.utils.encoding import python_2_unicode_compatible 24from django.utils.encoding import python_2_unicode_compatible
25 25
26class ProjectManager(models.Manager):
27 def create_project(self, name, branch, short_description):
28 prj = self.model(name = name, branch = branch, short_description = short_description)
29 prj.save()
30
31 # create default variables
32 ProjectVariable.objects.create(project = prj, name = "MACHINE", value = "qemux86")
33 ProjectVariable.objects.create(project = prj, name = "DISTRO", value = "poky")
34
35 # create default layers
36 ProjectLayer.objects.create(project = prj,
37 name = "meta",
38 giturl = "git://git.yoctoproject.org/poky",
39 commit = branch,
40 treepath = "meta")
41
42 ProjectLayer.objects.create(project = prj,
43 name = "meta-yocto",
44 giturl = "git://git.yoctoproject.org/poky",
45 commit = branch,
46 treepath = "meta-yocto")
47
48 return prj
49
50 def create(self, *args, **kwargs):
51 raise Exception("Invalid call to Project.objects.create. Use Project.objects.create_project() to create a project")
52
53 def get_or_create(self, *args, **kwargs):
54 raise Exception("Invalid call to Project.objects.get_or_create. Use Project.objects.create_project() to create a project")
55
26class Project(models.Model): 56class Project(models.Model):
27 name = models.CharField(max_length=100) 57 name = models.CharField(max_length=100)
58 branch = models.CharField(max_length=50)
59 short_description = models.CharField(max_length=50, blank=True)
28 created = models.DateTimeField(auto_now_add = True) 60 created = models.DateTimeField(auto_now_add = True)
29 updated = models.DateTimeField(auto_now = True) 61 updated = models.DateTimeField(auto_now = True)
62 # This is a horrible hack; since Toaster has no "User" model available when
63 # running in interactive mode, we can't reference the field here directly
64 # Instead, we keep a possible null reference to the User id, as not to force
65 # hard links to possibly missing models
66 user_id = models.IntegerField(null = True)
67 objects = ProjectManager()
30 68
31class Build(models.Model): 69class Build(models.Model):
32 SUCCEEDED = 0 70 SUCCEEDED = 0