Refactoring sites.
parent
31f0480791
commit
bebd6808ba
|
@ -9,8 +9,8 @@ from rest_framework.permissions import AllowAny
|
|||
from rest_framework import status, viewsets
|
||||
from rest_framework.decorators import list_route
|
||||
|
||||
from greenmine.base.models import SiteMember
|
||||
from greenmine.base.sites import get_active_site
|
||||
from greenmine.base.domains.models import DomainMember
|
||||
from greenmine.base.domains import get_active_domain
|
||||
from greenmine.base.users.models import User, Role
|
||||
from greenmine.base.users.serializers import UserSerializer
|
||||
from greenmine.base import exceptions as exc
|
||||
|
@ -31,13 +31,13 @@ class AuthViewSet(viewsets.ViewSet):
|
|||
response_data["auth_token"] = auth.get_token_for_user(user)
|
||||
return response_data
|
||||
|
||||
def _create_site_member(self, user):
|
||||
site = get_active_site()
|
||||
def _create_domain_member(self, user):
|
||||
domain = get_active_domain()
|
||||
|
||||
if SiteMember.objects.filter(site=site, user=user).count() == 0:
|
||||
site_member = SiteMember(site=site, user=user, email=user.email,
|
||||
if DomainMember.objects.filter(site=domain, user=user).count() == 0:
|
||||
domain_member = DomainMember(site=domain, user=user, email=user.email,
|
||||
is_owner=False, is_staff=False)
|
||||
site_member.save()
|
||||
domain_member.save()
|
||||
|
||||
def _send_public_register_email(self, user):
|
||||
context = {"user": user}
|
||||
|
@ -47,8 +47,8 @@ class AuthViewSet(viewsets.ViewSet):
|
|||
email.send()
|
||||
|
||||
def _public_register(self, request):
|
||||
if not request.site.public_register:
|
||||
raise exc.BadRequest("Public register is disabled for this site.")
|
||||
if not request.domain.public_register:
|
||||
raise exc.BadRequest("Public register is disabled for this domain.")
|
||||
|
||||
serializer = PublicRegisterSerializer(data=request.DATA)
|
||||
if not serializer.is_valid():
|
||||
|
@ -63,7 +63,7 @@ class AuthViewSet(viewsets.ViewSet):
|
|||
user.set_password(data["password"])
|
||||
user.save()
|
||||
|
||||
self._create_site_member(user)
|
||||
self._create_domain_member(user)
|
||||
|
||||
#self._send_public_register_email(user)
|
||||
|
||||
|
@ -111,7 +111,7 @@ class AuthViewSet(viewsets.ViewSet):
|
|||
user.set_password(data["password"])
|
||||
user.save()
|
||||
|
||||
self._create_site_member(user)
|
||||
self._create_domain_member(user)
|
||||
|
||||
membership.user = user
|
||||
membership.save()
|
||||
|
|
|
@ -15,10 +15,10 @@ from rest_framework.response import Response
|
|||
|
||||
from greenmine import urls
|
||||
from greenmine.base import auth
|
||||
from greenmine.base.users.tests import create_user, create_site
|
||||
from greenmine.base.users.tests import create_user, create_domain
|
||||
from greenmine.projects.tests import create_project
|
||||
|
||||
from greenmine.base.models import Site, SiteMember
|
||||
from greenmine.base.domains.models import Domain, DomainMember
|
||||
from greenmine.projects.models import Membership
|
||||
|
||||
|
||||
|
@ -36,7 +36,7 @@ urls.urlpatterns += patterns("",
|
|||
|
||||
|
||||
class TokenAuthTests(test.TestCase):
|
||||
fixtures = ["initial_site.json"]
|
||||
fixtures = ["initial_domains.json",]
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1)
|
||||
|
||||
|
@ -53,10 +53,12 @@ class TokenAuthTests(test.TestCase):
|
|||
|
||||
|
||||
class RegisterTests(test.TestCase):
|
||||
fixtures = ["initial_domains.json",]
|
||||
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1)
|
||||
self.site1 = create_site("localhost1", True)
|
||||
self.site2 = create_site("localhost2", False)
|
||||
self.site1 = create_domain("localhost1", True)
|
||||
self.site2 = create_domain("localhost2", False)
|
||||
self.role = self._create_role()
|
||||
self.project = create_project(1, self.user1)
|
||||
|
||||
|
@ -74,7 +76,7 @@ class RegisterTests(test.TestCase):
|
|||
response = self.client.post(url, data, HTTP_X_HOST=self.site1.name)
|
||||
self.assertEqual(response.status_code, 201)
|
||||
|
||||
self.assertEqual(SiteMember.objects.filter(site=self.site1).count(), 1)
|
||||
self.assertEqual(DomainMember.objects.filter(site=self.site1).count(), 1)
|
||||
self.assertEqual(self.project.memberships.count(), 0)
|
||||
|
||||
|
||||
|
@ -130,8 +132,8 @@ class RegisterTests(test.TestCase):
|
|||
self.assertEqual(response.status_code, 201)
|
||||
self.assertEqual(self.project.memberships.exclude(user__isnull=True).count(), 1)
|
||||
self.assertEqual(self.project.memberships.get().role, self.role)
|
||||
self.assertEqual(SiteMember.objects.filter(site=self.site1).count(), 0)
|
||||
self.assertEqual(SiteMember.objects.filter(site=self.site2).count(), 1)
|
||||
self.assertEqual(DomainMember.objects.filter(site=self.site1).count(), 0)
|
||||
self.assertEqual(DomainMember.objects.filter(site=self.site2).count(), 1)
|
||||
|
||||
def test_private_register_03(self):
|
||||
membership = self._create_invitation("pepe@pepe.com")
|
||||
|
@ -154,8 +156,8 @@ class RegisterTests(test.TestCase):
|
|||
self.assertEqual(response.status_code, 201)
|
||||
self.assertEqual(self.project.memberships.exclude(user__isnull=True).count(), 1)
|
||||
self.assertEqual(self.project.memberships.get().role, self.role)
|
||||
self.assertEqual(SiteMember.objects.filter(site=self.site1).count(), 0)
|
||||
self.assertEqual(SiteMember.objects.filter(site=self.site2).count(), 1)
|
||||
self.assertEqual(DomainMember.objects.filter(site=self.site1).count(), 0)
|
||||
self.assertEqual(DomainMember.objects.filter(site=self.site2).count(), 1)
|
||||
|
||||
|
||||
def _create_invitation(self, email):
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import logging
|
||||
from threading import local
|
||||
|
||||
from django.db.models import get_model
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
from .. import exceptions as exc
|
||||
|
||||
|
||||
_local = local()
|
||||
log = logging.getLogger("greenmine.domains")
|
||||
|
||||
|
||||
class DomainNotFound(exc.BaseException):
|
||||
pass
|
||||
|
||||
|
||||
def get_default_domain():
|
||||
from django.conf import settings
|
||||
try:
|
||||
sid = settings.SITE_ID
|
||||
except AttributeError:
|
||||
raise ImproperlyConfigured("You're using the \"domains framework\" without having "
|
||||
"set the DOMAIN_ID setting. Create a domain in your database "
|
||||
"and set the DOMAIN_ID setting to fix this error.")
|
||||
|
||||
model_cls = get_model("domains", "Domain")
|
||||
cached = getattr(_local, "default_domain", None)
|
||||
if cached is None:
|
||||
try:
|
||||
cached = _local.default_domain = model_cls.objects.get(pk=sid)
|
||||
except model_cls.DoesNotExist:
|
||||
raise ImproperlyConfigured("default domain not found on database.")
|
||||
|
||||
return cached
|
||||
|
||||
|
||||
def get_domain_for_domain_name(domain):
|
||||
log.debug("Trying activate domain for domain name: {}".format(domain))
|
||||
cache = getattr(_local, "cache", {})
|
||||
|
||||
if domain in cache:
|
||||
return cache[domain]
|
||||
|
||||
model_cls = get_model("domains", "Domain")
|
||||
|
||||
try:
|
||||
domain = model_cls.objects.get(domain=domain)
|
||||
except model_cls.DoesNotExist:
|
||||
log.warning("Domain does not exist for domain: {}".format(domain))
|
||||
raise DomainNotFound("domain not found")
|
||||
else:
|
||||
cache[domain] = domain
|
||||
|
||||
return domain
|
||||
|
||||
|
||||
def activate(domain):
|
||||
log.debug("Activating domain: {}".format(domain))
|
||||
_local.active_domain = domain
|
||||
|
||||
|
||||
def deactivate():
|
||||
if hasattr(_local, "active_domain"):
|
||||
log.debug("Deactivating domain: {}".format(_local.active_domain))
|
||||
del _local.active_domain
|
||||
|
||||
|
||||
def get_active_domain():
|
||||
active_domain = getattr(_local, "active_domain", None)
|
||||
if active_domain is None:
|
||||
return get_default_domain()
|
||||
return active_domain
|
||||
|
||||
def clear_domain_cache(**kwargs):
|
||||
if hasattr(_local, "default_domain"):
|
||||
del _local.default_domain
|
||||
|
||||
if hasattr(_local, "cache"):
|
||||
del _local.cache
|
|
@ -1,9 +1,10 @@
|
|||
from django.contrib import admin
|
||||
from .models import Site
|
||||
|
||||
from .models import Domain
|
||||
|
||||
|
||||
class SiteAdmin(admin.ModelAdmin):
|
||||
class DomainAdmin(admin.ModelAdmin):
|
||||
list_display = ('domain', 'name')
|
||||
search_fields = ('domain', 'name')
|
||||
|
||||
admin.site.register(Site, SiteAdmin)
|
||||
admin.site.register(Domain, DomainAdmin)
|
|
@ -4,9 +4,9 @@ from rest_framework import viewsets
|
|||
from rest_framework.response import Response
|
||||
|
||||
|
||||
class SiteViewSet(viewsets.ViewSet):
|
||||
class DomainViewSet(viewsets.ViewSet):
|
||||
def status(self, request, **kwargs):
|
||||
return Response({})
|
||||
|
||||
|
||||
sitestatus = SiteViewSet.as_view({"head": "status", "get": "status"})
|
||||
domainstatus = DomainViewSet.as_view({"head": "status", "get": "status"})
|
|
@ -1,8 +1,10 @@
|
|||
[
|
||||
{
|
||||
"model": "base.site",
|
||||
"model": "domains.domain",
|
||||
"fields": {
|
||||
"public_register": false,
|
||||
"domain": "localhost",
|
||||
"scheme": null,
|
||||
"name": "localhost"
|
||||
},
|
||||
"pk": 1
|
|
@ -0,0 +1,33 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import json
|
||||
|
||||
from django import http
|
||||
|
||||
from greenmine.base import domains
|
||||
from greenmine.base.exceptions import format_exception
|
||||
|
||||
|
||||
class DomainsMiddleware(object):
|
||||
def process_request(self, request):
|
||||
domain = request.META.get("HTTP_X_HOST", None)
|
||||
if domain is not None:
|
||||
try:
|
||||
domain = domains.get_domain_for_domain_name(domain)
|
||||
except domains.DomainNotFound as e:
|
||||
detail = format_exception(e)
|
||||
return http.HttpResponseBadRequest(json.dumps(detail))
|
||||
else:
|
||||
domain = domains.get_default_domain()
|
||||
|
||||
request.domain = domain
|
||||
domains.activate(domain)
|
||||
|
||||
def process_response(self, request, response):
|
||||
domains.deactivate()
|
||||
|
||||
if hasattr(request, "domain"):
|
||||
response["X-Site-Host"] = request.domain.domain
|
||||
response["X-Site-Register"] = "on" if request.domain.public_register else "off"
|
||||
|
||||
return response
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
@ -8,104 +8,105 @@ from django.db import models
|
|||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding model 'Site'
|
||||
db.create_table('base_site', (
|
||||
# Adding model 'Domain'
|
||||
db.create_table('domains_domain', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('domain', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
|
||||
('domain', self.gf('django.db.models.fields.CharField')(max_length=255, unique=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
|
||||
('scheme', self.gf('django.db.models.fields.CharField')(max_length=60, default=None, null=True)),
|
||||
('scheme', self.gf('django.db.models.fields.CharField')(max_length=60, null=True, default=None)),
|
||||
('public_register', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
))
|
||||
db.send_create_signal('base', ['Site'])
|
||||
db.send_create_signal('domains', ['Domain'])
|
||||
|
||||
# Adding model 'SiteMember'
|
||||
db.create_table('base_sitemember', (
|
||||
# Adding model 'DomainMember'
|
||||
db.create_table('domains_domainmember', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('site', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['base.Site'])),
|
||||
('site', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['domains.Domain'])),
|
||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['users.User'])),
|
||||
('email', self.gf('django.db.models.fields.EmailField')(max_length=255)),
|
||||
('is_owner', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('is_staff', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
))
|
||||
db.send_create_signal('base', ['SiteMember'])
|
||||
db.send_create_signal('domains', ['DomainMember'])
|
||||
|
||||
# Adding unique constraint on 'DomainMember', fields ['site', 'user']
|
||||
db.create_unique('domains_domainmember', ['site_id', 'user_id'])
|
||||
|
||||
# Adding unique constraint on 'SiteMember', fields ['site', 'user']
|
||||
db.create_unique('base_sitemember', ['site_id', 'user_id'])
|
||||
|
||||
def backwards(self, orm):
|
||||
# Removing unique constraint on 'SiteMember', fields ['site', 'user']
|
||||
db.delete_unique('base_sitemember', ['site_id', 'user_id'])
|
||||
# Removing unique constraint on 'DomainMember', fields ['site', 'user']
|
||||
db.delete_unique('domains_domainmember', ['site_id', 'user_id'])
|
||||
|
||||
# Deleting model 'Site'
|
||||
db.delete_table('base_site')
|
||||
# Deleting model 'Domain'
|
||||
db.delete_table('domains_domain')
|
||||
|
||||
# Deleting model 'SiteMember'
|
||||
db.delete_table('base_sitemember')
|
||||
# Deleting model 'DomainMember'
|
||||
db.delete_table('domains_domainmember')
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'to': "orm['auth.Permission']", 'symmetrical': 'False'})
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)"},
|
||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'base.site': {
|
||||
'Meta': {'object_name': 'Site', 'ordering': "('domain',)"},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'max_length': '60', 'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'base.sitemember': {
|
||||
'Meta': {'object_name': 'SiteMember', 'ordering': "['email']", 'unique_together': "(('site', 'user'),)"},
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_owner': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['base.Site']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['users.User']"})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'object_name': 'ContentType', 'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)"},
|
||||
'Meta': {'ordering': "('name',)", 'db_table': "'django_content_type'", 'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'domains.domain': {
|
||||
'Meta': {'ordering': "('domain',)", 'object_name': 'Domain'},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'domains.domainmember': {
|
||||
'Meta': {'ordering': "['email']", 'object_name': 'DomainMember', 'unique_together': "(('site', 'user'),)"},
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_owner': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['domains.Domain']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['users.User']"})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '9', 'default': "'#669933'"}),
|
||||
'Meta': {'ordering': "['username']", 'object_name': 'User'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'blank': 'True', 'default': "'#669933'"}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True', 'default': "''"}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True', 'default': "''"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'to': "orm['auth.Group']", 'related_name': "'user_set'", 'symmetrical': 'False'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'related_name': "'user_set'", 'blank': 'True', 'symmetrical': 'False'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'blank': 'True', 'max_length': '500', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '200', 'default': 'None', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'to': "orm['auth.Permission']", 'related_name': "'user_set'", 'symmetrical': 'False'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True', 'null': 'True', 'default': 'None'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'related_name': "'user_set'", 'blank': 'True', 'symmetrical': 'False'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['base']
|
||||
complete_apps = ['domains']
|
|
@ -0,0 +1,66 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import string
|
||||
|
||||
from django.db import models
|
||||
from django.db.models.signals import pre_save, pre_delete
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from . import clear_domain_cache
|
||||
|
||||
|
||||
def _simple_domain_name_validator(value):
|
||||
"""
|
||||
Validates that the given value contains no whitespaces to prevent common
|
||||
typos.
|
||||
"""
|
||||
if not value:
|
||||
return
|
||||
|
||||
checks = ((s in value) for s in string.whitespace)
|
||||
if any(checks):
|
||||
raise ValidationError(
|
||||
_("The domain name cannot contain any spaces or tabs."),
|
||||
code='invalid',
|
||||
)
|
||||
|
||||
|
||||
class Domain(models.Model):
|
||||
domain = models.CharField(_('domain name'), max_length=255, unique=True,
|
||||
validators=[_simple_domain_name_validator])
|
||||
name = models.CharField(_('display name'), max_length=255)
|
||||
scheme = models.CharField(_('scheme'), max_length=60, null=True, default=None)
|
||||
|
||||
# Site Metadata
|
||||
public_register = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('domain')
|
||||
verbose_name_plural = _('domain')
|
||||
ordering = ('domain',)
|
||||
|
||||
def __str__(self):
|
||||
return self.domain
|
||||
|
||||
|
||||
class DomainMember(models.Model):
|
||||
site = models.ForeignKey("Domain", related_name="+")
|
||||
user = models.ForeignKey("users.User", related_name="+", null=True)
|
||||
|
||||
email = models.EmailField(max_length=255)
|
||||
is_owner = models.BooleanField(default=False)
|
||||
is_staff = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
ordering = ["email"]
|
||||
verbose_name = "Domain Member"
|
||||
verbose_name_plural = "Domain Members"
|
||||
unique_together = ("site", "user")
|
||||
|
||||
def __str__(self):
|
||||
return "DomainMember: {0}:{1}".format(self.site, self.user)
|
||||
|
||||
|
||||
pre_save.connect(clear_domain_cache, sender=Domain)
|
||||
pre_delete.connect(clear_domain_cache, sender=Domain)
|
|
@ -3,7 +3,6 @@
|
|||
import json
|
||||
|
||||
from django import http
|
||||
from greenmine.base import sites
|
||||
|
||||
|
||||
COORS_ALLOWED_ORIGINS = '*'
|
||||
|
@ -16,8 +15,6 @@ COORS_EXPOSE_HEADERS = ["x-pagination-count", "x-paginated", "x-paginated-by",
|
|||
"x-paginated-by", "x-pagination-current", "x-site-host",
|
||||
"x-site-register"]
|
||||
|
||||
from .exceptions import format_exception
|
||||
|
||||
|
||||
class CoorsMiddleware(object):
|
||||
def _populate_response(self, response):
|
||||
|
@ -39,28 +36,3 @@ class CoorsMiddleware(object):
|
|||
def process_response(self, request, response):
|
||||
self._populate_response(response)
|
||||
return response
|
||||
|
||||
|
||||
class SitesMiddleware(object):
|
||||
def process_request(self, request):
|
||||
domain = request.META.get("HTTP_X_HOST", None)
|
||||
if domain is not None:
|
||||
try:
|
||||
site = sites.get_site_for_domain(domain)
|
||||
except sites.SiteNotFound as e:
|
||||
detail = format_exception(e)
|
||||
return http.HttpResponseBadRequest(json.dumps(detail))
|
||||
else:
|
||||
site = sites.get_default_site()
|
||||
|
||||
request.site = site
|
||||
sites.activate(site)
|
||||
|
||||
def process_response(self, request, response):
|
||||
sites.deactivate()
|
||||
|
||||
if hasattr(request, "site"):
|
||||
response["X-Site-Host"] = request.site.domain
|
||||
response["X-Site-Register"] = "on" if request.site.public_register else "off"
|
||||
|
||||
return response
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
pass
|
||||
|
||||
def backwards(self, orm):
|
||||
pass
|
||||
|
||||
models = {
|
||||
|
||||
}
|
||||
|
||||
complete_apps = ['base']
|
|
@ -1,95 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import DataMigration
|
||||
from django.db import models
|
||||
|
||||
class Migration(DataMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
"Write your forwards methods here."
|
||||
# Note: Don't use "from appname.models import ModelName".
|
||||
# Use orm.ModelName to refer to models in this application,
|
||||
# and orm['appname.ModelName'] for models in other applications.
|
||||
|
||||
from django.core.management import call_command
|
||||
call_command("loaddata", "initial_site.json")
|
||||
|
||||
site = orm["base.Site"].objects.get(pk=1)
|
||||
|
||||
for user in orm["users.User"].objects.all():
|
||||
orm["base.SiteMember"].objects.create(user=user, site=site, email=user.email)
|
||||
|
||||
orm["base.SiteMember"].objects.filter(user_id=1).update(is_staff=True, is_owner=True)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
"Write your backwards methods here."
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'base.site': {
|
||||
'Meta': {'object_name': 'Site', 'ordering': "('domain',)"},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'default': 'None', 'null': 'True', 'max_length': '60'})
|
||||
},
|
||||
'base.sitemember': {
|
||||
'Meta': {'unique_together': "(('site', 'user'),)", 'object_name': 'SiteMember', 'ordering': "['email']"},
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_owner': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['base.Site']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['users.User']", 'null': 'True'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'", 'ordering': "('name',)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#669933'", 'blank': 'True', 'max_length': '9'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'default': "''", 'blank': 'True', 'max_length': '20'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'default': "''", 'blank': 'True', 'max_length': '20'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'related_name': "'user_set'", 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'default': "'all_owned_projects'", 'max_length': '32'}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'blank': 'True', 'null': 'True', 'max_length': '500'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'default': 'None', 'blank': 'True', 'null': 'True', 'max_length': '200'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'related_name': "'user_set'", 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['base']
|
||||
symmetrical = True
|
|
@ -1,70 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import string
|
||||
|
||||
from django.db import models
|
||||
from django.db.models.signals import pre_save, pre_delete
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from . import sites
|
||||
|
||||
|
||||
def _simple_domain_name_validator(value):
|
||||
"""
|
||||
Validates that the given value contains no whitespaces to prevent common
|
||||
typos.
|
||||
"""
|
||||
if not value:
|
||||
return
|
||||
checks = ((s in value) for s in string.whitespace)
|
||||
if any(checks):
|
||||
raise ValidationError(
|
||||
_("The domain name cannot contain any spaces or tabs."),
|
||||
code='invalid',
|
||||
)
|
||||
|
||||
|
||||
class Site(models.Model):
|
||||
domain = models.CharField(_('domain name'), max_length=255, unique=True,
|
||||
validators=[_simple_domain_name_validator])
|
||||
name = models.CharField(_('display name'), max_length=255)
|
||||
scheme = models.CharField(_('scheme'), max_length=60, null=True, default=None)
|
||||
|
||||
# Site Metadata
|
||||
public_register = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('site')
|
||||
verbose_name_plural = _('sites')
|
||||
ordering = ('domain',)
|
||||
|
||||
def __str__(self):
|
||||
return self.domain
|
||||
|
||||
|
||||
class SiteMember(models.Model):
|
||||
site = models.ForeignKey("Site", related_name="+")
|
||||
user = models.ForeignKey("users.User", related_name="+", null=True)
|
||||
|
||||
email = models.EmailField(max_length=255)
|
||||
is_owner = models.BooleanField(default=False)
|
||||
is_staff = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
ordering = ["email"]
|
||||
verbose_name = "Site Member"
|
||||
verbose_name_plural = "Site Members"
|
||||
unique_together = ("site", "user")
|
||||
|
||||
def __str__(self):
|
||||
return "SiteMember: {0}:{1}".format(self.site, self.user)
|
||||
|
||||
|
||||
pre_save.connect(sites.clear_site_cache, sender=Site)
|
||||
pre_delete.connect(sites.clear_site_cache, sender=Site)
|
||||
|
||||
|
||||
# Patch api view for correctly return 401 responses on
|
||||
# request is authenticated instead of 403
|
||||
from . import monkey
|
||||
|
|
|
@ -1,82 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import logging
|
||||
from threading import local
|
||||
|
||||
from django.db.models import get_model
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
from . import exceptions as exc
|
||||
|
||||
|
||||
_local = local()
|
||||
log = logging.getLogger("greenmine.sites")
|
||||
|
||||
|
||||
class SiteNotFound(exc.BaseException):
|
||||
pass
|
||||
|
||||
|
||||
def get_default_site():
|
||||
from django.conf import settings
|
||||
try:
|
||||
sid = settings.SITE_ID
|
||||
except AttributeError:
|
||||
raise ImproperlyConfigured("You're using the \"sites framework\" without having "
|
||||
"set the SITE_ID setting. Create a site in your database "
|
||||
"and set the SITE_ID setting to fix this error.")
|
||||
|
||||
model_cls = get_model("base", "Site")
|
||||
cached = getattr(_local, "default_site", None)
|
||||
if cached is None:
|
||||
try:
|
||||
cached = _local.default_site = model_cls.objects.get(pk=sid)
|
||||
except model_cls.DoesNotExist:
|
||||
raise ImproperlyConfigured("default site not found on database.")
|
||||
|
||||
return cached
|
||||
|
||||
|
||||
def get_site_for_domain(domain):
|
||||
log.debug("Trying activate site for domain: {}".format(domain))
|
||||
cache = getattr(_local, "cache", {})
|
||||
|
||||
if domain in cache:
|
||||
return cache[domain]
|
||||
|
||||
model_cls = get_model("base", "Site")
|
||||
|
||||
try:
|
||||
site = model_cls.objects.get(domain=domain)
|
||||
except model_cls.DoesNotExist:
|
||||
log.warning("Site does not exist for domain: {}".format(domain))
|
||||
raise SiteNotFound("site not found")
|
||||
else:
|
||||
cache[domain] = site
|
||||
|
||||
return site
|
||||
|
||||
|
||||
def activate(site):
|
||||
log.debug("Activating site: {}".format(site))
|
||||
_local.active_site = site
|
||||
|
||||
|
||||
def deactivate():
|
||||
if hasattr(_local, "active_site"):
|
||||
log.debug("Deactivating site: {}".format(_local.active_site))
|
||||
del _local.active_site
|
||||
|
||||
|
||||
def get_active_site():
|
||||
active_site = getattr(_local, "active_site", None)
|
||||
if active_site is None:
|
||||
return get_default_site()
|
||||
return active_site
|
||||
|
||||
def clear_site_cache(**kwargs):
|
||||
if hasattr(_local, "default_site"):
|
||||
del _local.default_site
|
||||
|
||||
if hasattr(_local, "cache"):
|
||||
del _local.cache
|
|
@ -23,5 +23,16 @@
|
|||
"email": "niwi@niwi.be",
|
||||
"date_joined": "2013-04-01T13:48:21.711Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "domains.domainmember",
|
||||
"pk": 1,
|
||||
"fields": {
|
||||
"is_staff": true,
|
||||
"is_owner": true,
|
||||
"user": 1,
|
||||
"site": 1,
|
||||
"email": "niwi@niwi.be"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
@ -15,18 +15,20 @@ class Migration(SchemaMigration):
|
|||
('last_login', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
|
||||
('is_superuser', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('username', self.gf('django.db.models.fields.CharField')(max_length=30, unique=True)),
|
||||
('first_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)),
|
||||
('last_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)),
|
||||
('email', self.gf('django.db.models.fields.EmailField')(max_length=75, blank=True)),
|
||||
('first_name', self.gf('django.db.models.fields.CharField')(blank=True, max_length=30)),
|
||||
('last_name', self.gf('django.db.models.fields.CharField')(blank=True, max_length=30)),
|
||||
('email', self.gf('django.db.models.fields.EmailField')(blank=True, max_length=75)),
|
||||
('is_staff', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('is_active', self.gf('django.db.models.fields.BooleanField')(default=True)),
|
||||
('date_joined', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
|
||||
('color', self.gf('django.db.models.fields.CharField')(default='#669933', max_length=9, blank=True)),
|
||||
('notify_level', self.gf('django.db.models.fields.CharField')(max_length=32, default='all_owned_projects')),
|
||||
('notify_changes_by_me', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('color', self.gf('django.db.models.fields.CharField')(blank=True, max_length=9, default='#669933')),
|
||||
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
|
||||
('photo', self.gf('django.db.models.fields.files.FileField')(max_length=500, blank=True, null=True)),
|
||||
('default_language', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)),
|
||||
('default_timezone', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)),
|
||||
('token', self.gf('django.db.models.fields.CharField')(default=None, max_length=200, blank=True, null=True)),
|
||||
('photo', self.gf('django.db.models.fields.files.FileField')(blank=True, max_length=500, null=True)),
|
||||
('default_language', self.gf('django.db.models.fields.CharField')(blank=True, max_length=20, default='')),
|
||||
('default_timezone', self.gf('django.db.models.fields.CharField')(blank=True, max_length=20, default='')),
|
||||
('token', self.gf('django.db.models.fields.CharField')(blank=True, max_length=200, default=None, null=True)),
|
||||
('colorize_tags', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
))
|
||||
db.send_create_signal('users', ['User'])
|
||||
|
@ -53,7 +55,7 @@ class Migration(SchemaMigration):
|
|||
db.create_table('users_role', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=200)),
|
||||
('slug', self.gf('django.db.models.fields.SlugField')(max_length=250, unique=True, blank=True)),
|
||||
('slug', self.gf('django.db.models.fields.SlugField')(blank=True, max_length=250, unique=True)),
|
||||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('computable', self.gf('django.db.models.fields.BooleanField')(default=True)),
|
||||
))
|
||||
|
@ -91,52 +93,54 @@ class Migration(SchemaMigration):
|
|||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Permission']", 'blank': 'True'})
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'object_name': 'Permission'},
|
||||
'Meta': {'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
||||
'Meta': {'object_name': 'ContentType', 'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'},
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'})
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'max_length': '250', 'unique': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'ordering': "['username']", 'object_name': 'User'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#669933'", 'max_length': '9', 'blank': 'True'}),
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '9', 'default': "'#669933'"}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Group']", 'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'blank': 'True', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Permission']", 'blank': 'True'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'blank': 'True', 'max_length': '500', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '200', 'default': 'None', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'User.notify_level'
|
||||
db.add_column('users_user', 'notify_level',
|
||||
self.gf('django.db.models.fields.CharField')(max_length=32, default='all_owned_projects'),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'User.notify_changes_by_me'
|
||||
db.add_column('users_user', 'notify_changes_by_me',
|
||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'User.notify_level'
|
||||
db.delete_column('users_user', 'notify_level')
|
||||
|
||||
# Deleting field 'User.notify_changes_by_me'
|
||||
db.delete_column('users_user', 'notify_changes_by_me')
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'object_name': 'ContentType', 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'default': 'None', 'blank': 'True', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['users']
|
|
@ -5,6 +5,8 @@ from django.db.models.loading import get_model
|
|||
|
||||
def create_user(id, save=True, is_superuser=False):
|
||||
model = get_model("users", "User")
|
||||
domain_member_model = get_model("domains", "DomainMember")
|
||||
domain_model = get_model("domains", "Domain")
|
||||
|
||||
instance = model(
|
||||
username="user{0}".format(id),
|
||||
|
@ -18,17 +20,26 @@ def create_user(id, save=True, is_superuser=False):
|
|||
instance.is_staff = True
|
||||
instance.is_superuser = True
|
||||
|
||||
if save:
|
||||
instance.save()
|
||||
instance.save()
|
||||
|
||||
domain = domain_model.objects.get(pk=1)
|
||||
dm = domain_member_model.objects.create(user=instance,
|
||||
email=instance.email,
|
||||
site=domain)
|
||||
if id == 1:
|
||||
dm.is_owner = True
|
||||
dm.is_staff = True
|
||||
dm.save()
|
||||
|
||||
return instance
|
||||
|
||||
|
||||
def create_site(name, public_register=False):
|
||||
site_model = get_model("base", "Site")
|
||||
def create_domain(name, public_register=False):
|
||||
domain_model = get_model("domains", "Domain")
|
||||
|
||||
instance = site_model(name=name,
|
||||
domain=name,
|
||||
public_register=public_register)
|
||||
instance = domain_model(name=name,
|
||||
domain=name,
|
||||
public_register=public_register)
|
||||
|
||||
instance.save()
|
||||
return instance
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
from django.conf import settings
|
||||
from django_jinja import library
|
||||
|
||||
from greenmine.base import sites
|
||||
from greenmine.base import domains
|
||||
|
||||
|
||||
URLS = {
|
||||
|
@ -24,9 +24,9 @@ lib = library.Library()
|
|||
|
||||
@lib.global_function(name="resolve_front_url")
|
||||
def resolve(type, *args):
|
||||
site = sites.get_active_site()
|
||||
domain = domains.get_active_domain()
|
||||
url_tmpl = "{scheme}//{domain}{url}"
|
||||
|
||||
scheme = site.scheme and "{0}:".format(site.scheme) or ""
|
||||
scheme = domain.scheme and "{0}:".format(domain.scheme) or ""
|
||||
url = URLS[type].format(*args)
|
||||
return url_tmpl.format(scheme=scheme, domain=site.domain, url=url)
|
||||
return url_tmpl.format(scheme=scheme, domain=domain.domain, url=url)
|
||||
|
|
|
@ -61,10 +61,12 @@ class ProjectViewSet(ModelCrudViewSet):
|
|||
def pre_save(self, obj):
|
||||
obj.owner = self.request.user
|
||||
|
||||
# FIXME
|
||||
|
||||
# Assign site only if it current
|
||||
# value is None
|
||||
if not obj.site:
|
||||
obj.site = self.request.site
|
||||
obj.site = self.request.domain
|
||||
|
||||
super().pre_save(obj)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
@ -11,21 +11,20 @@ class Migration(SchemaMigration):
|
|||
# Adding model 'Issue'
|
||||
db.create_table('issues_issue', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('uuid', self.gf('django.db.models.fields.CharField')(max_length=40, blank=True, unique=True)),
|
||||
('ref', self.gf('django.db.models.fields.BigIntegerField')(db_index=True, default=None, null=True, blank=True)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], default=None, related_name='owned_issues', null=True, blank=True)),
|
||||
('status', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.IssueStatus'])),
|
||||
('severity', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.Severity'])),
|
||||
('priority', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.Priority'])),
|
||||
('type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.IssueType'])),
|
||||
('milestone', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['milestones.Milestone'], default=None, related_name='issues', null=True, blank=True)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.Project'])),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)),
|
||||
('modified_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)),
|
||||
('ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=None, db_index=True, blank=True)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], null=True, default=None, related_name='owned_issues', blank=True)),
|
||||
('status', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.IssueStatus'], related_name='issues')),
|
||||
('severity', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Severity'], related_name='issues')),
|
||||
('priority', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Priority'], related_name='issues')),
|
||||
('type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.IssueType'], related_name='issues')),
|
||||
('milestone', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['milestones.Milestone'], null=True, default=None, related_name='issues', blank=True)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='issues')),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
||||
('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
|
||||
('finished_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
|
||||
('subject', self.gf('django.db.models.fields.CharField')(max_length=500)),
|
||||
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
|
||||
('assigned_to', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], default=None, related_name='issues_assigned_to_me', null=True, blank=True)),
|
||||
('assigned_to', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], null=True, default=None, related_name='issues_assigned_to_me', blank=True)),
|
||||
('tags', self.gf('picklefield.fields.PickledObjectField')(blank=True)),
|
||||
))
|
||||
db.send_create_signal('issues', ['Issue'])
|
||||
|
@ -58,8 +57,8 @@ class Migration(SchemaMigration):
|
|||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)"},
|
||||
|
@ -69,103 +68,158 @@ class Migration(SchemaMigration):
|
|||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'object_name': 'ContentType', 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
|
||||
'Meta': {'object_name': 'ContentType', 'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'domains.domain': {
|
||||
'Meta': {'object_name': 'Domain', 'ordering': "('domain',)"},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'null': 'True', 'default': 'None', 'max_length': '60'})
|
||||
},
|
||||
'issues.issue': {
|
||||
'Meta': {'object_name': 'Issue', 'ordering': "['project', 'created_date']", 'unique_together': "(('ref', 'project'),)"},
|
||||
'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'default': 'None', 'related_name': "'issues_assigned_to_me'", 'null': 'True', 'blank': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'null': 'True', 'default': 'None', 'related_name': "'issues_assigned_to_me'", 'blank': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'finished_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['milestones.Milestone']", 'default': 'None', 'related_name': "'issues'", 'null': 'True', 'blank': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'default': 'None', 'related_name': "'owned_issues'", 'null': 'True', 'blank': 'True'}),
|
||||
'priority': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Priority']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Project']"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'default': 'None', 'null': 'True', 'blank': 'True'}),
|
||||
'severity': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Severity']"}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.IssueStatus']"}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['milestones.Milestone']", 'null': 'True', 'default': 'None', 'related_name': "'issues'", 'blank': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'null': 'True', 'default': 'None', 'related_name': "'owned_issues'", 'blank': 'True'}),
|
||||
'priority': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Priority']", 'related_name': "'issues'"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issues'"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': 'None', 'db_index': 'True', 'blank': 'True'}),
|
||||
'severity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Severity']", 'related_name': "'issues'"}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.IssueStatus']", 'related_name': "'issues'"}),
|
||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.IssueType']"}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True', 'unique': 'True'}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'blank': 'True', 'null': 'True', 'related_name': "'watched_issues'"})
|
||||
'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.IssueType']", 'related_name': "'issues'"}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'null': 'True', 'symmetrical': 'False', 'related_name': "'watched_issues'", 'blank': 'True'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'object_name': 'Milestone', 'ordering': "['project', '-created_date']", 'unique_together': "(('name', 'project'),)"},
|
||||
'Meta': {'object_name': 'Milestone', 'ordering': "['project', 'created_date']", 'unique_together': "(('name', 'project'),)"},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'default': '0.0', 'null': 'True', 'blank': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': '0.0', 'blank': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'db_index': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_milestones'", 'null': 'True', 'blank': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True', 'unique': 'True'})
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'null': 'True', 'related_name': "'owned_milestones'", 'blank': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'milestones'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'object_name': 'IssueStatus', 'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'Meta': {'object_name': 'IssueStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_statuses'"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'object_name': 'IssueType', 'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'Meta': {'object_name': 'IssueType', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_types'"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)"},
|
||||
'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role']"},
|
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'null': 'True', 'default': 'None', 'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"})
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'memberships'"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'memberships'"}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'default': 'None', 'blank': 'True', 'max_length': '60', 'unique': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'null': 'True', 'default': 'None', 'related_name': "'memberships'", 'blank': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'object_name': 'Priority', 'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'projects.points': {
|
||||
'Meta': {'object_name': 'Points', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'points'"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'object_name': 'Priority', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'priorities'"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'related_name': "'+'", 'unique': 'True', 'to': "orm['projects.IssueStatus']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'related_name': "'+'", 'unique': 'True', 'to': "orm['projects.IssueType']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'related_name': "'+'", 'unique': 'True', 'to': "orm['projects.Points']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'related_name': "'+'", 'unique': 'True', 'to': "orm['projects.Priority']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'related_name': "'+'", 'unique': 'True', 'to': "orm['projects.QuestionStatus']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'related_name': "'+'", 'unique': 'True', 'to': "orm['projects.Severity']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'related_name': "'+'", 'unique': 'True', 'to': "orm['projects.TaskStatus']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'related_name': "'+'", 'unique': 'True', 'to': "orm['projects.UserStoryStatus']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'through': "orm['projects.Membership']", 'related_name': "'projects'"}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'related_name': "'projects'", 'through': "orm['projects.Membership']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_projects'"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['domains.Domain']", 'null': 'True', 'default': 'None', 'related_name': "'projects'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True', 'unique': 'True'})
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'object_name': 'QuestionStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'question_status'"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'object_name': 'Severity', 'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'Meta': {'object_name': 'Severity', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'severities'"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'object_name': 'TaskStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'task_statuses'"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'object_name': 'UserStoryStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'us_statuses'"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
|
@ -174,7 +228,7 @@ class Migration(SchemaMigration):
|
|||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'related_name': "'roles'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'})
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
|
@ -186,18 +240,20 @@ class Migration(SchemaMigration):
|
|||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True', 'related_name': "'user_set'"}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'default': 'None', 'null': 'True', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True', 'related_name': "'user_set'"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'default': 'None', 'blank': 'True', 'max_length': '200'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,174 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Deleting field 'Issue.uuid'
|
||||
db.delete_column('issues_issue', 'uuid')
|
||||
|
||||
|
||||
# Changing field 'Issue.modified_date'
|
||||
db.alter_column('issues_issue', 'modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True))
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'Issue.uuid'
|
||||
db.add_column('issues_issue', 'uuid',
|
||||
self.gf('django.db.models.fields.CharField')(unique=True, blank=True, max_length=40, default=''),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
# Changing field 'Issue.modified_date'
|
||||
db.alter_column('issues_issue', 'modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True))
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType'},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'issues.issue': {
|
||||
'Meta': {'ordering': "['project', 'created_date']", 'unique_together': "(('ref', 'project'),)", 'object_name': 'Issue'},
|
||||
'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues_assigned_to_me'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'finished_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['milestones.Milestone']", 'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_issues'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'priority': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Priority']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Project']"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True', 'db_index': 'True', 'default': 'None'}),
|
||||
'severity': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Severity']"}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.IssueStatus']"}),
|
||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.IssueType']"}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'watched_issues'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'symmetrical': 'False'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'ordering': "['project', '-created_date']", 'unique_together': "(('name', 'project'),)", 'object_name': 'Milestone'},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True', 'default': '0.0'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_milestones'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueStatus'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueType'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)", 'object_name': 'Membership'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Priority'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Project'},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'through': "orm['projects.Membership']", 'to': "orm['users.User']", 'symmetrical': 'False'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True', 'default': '0'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Severity'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'to': "orm['auth.Permission']", 'symmetrical': 'False'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'ordering': "['username']", 'object_name': 'User'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '9', 'default': "'#669933'"}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Group']", 'blank': 'True', 'symmetrical': 'False'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'blank': 'True', 'max_length': '200', 'default': 'None'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['issues']
|
|
@ -15,7 +15,7 @@ from . import create_issue
|
|||
|
||||
|
||||
class IssuesTestCase(test.TestCase):
|
||||
fixtures = ["initial_role.json", "initial_site.json"]
|
||||
fixtures = ["initial_role.json", "initial_domains.json"]
|
||||
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1) # Project owner
|
||||
|
|
|
@ -89,6 +89,7 @@ class Command(BaseCommand):
|
|||
role = self.sd.db_object_from_queryset(Role.objects.all())
|
||||
|
||||
Membership.objects.create(
|
||||
email=user.email,
|
||||
project=project,
|
||||
role=role,
|
||||
user=user)
|
||||
|
@ -273,6 +274,7 @@ class Command(BaseCommand):
|
|||
name='Project Example {0}'.format(counter),
|
||||
description='Project example {0} description'.format(counter),
|
||||
owner=random.choice(self.users),
|
||||
site_id=1,
|
||||
public=True,
|
||||
total_story_points=self.sd.int(600, 3000),
|
||||
total_milestones=self.sd.int(5,10))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
@ -8,11 +8,51 @@ from django.db import models
|
|||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding model 'Membership'
|
||||
db.create_table('projects_membership', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='memberships', to=orm['users.User'], null=True, blank=True, default=None)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='memberships', to=orm['projects.Project'])),
|
||||
('role', self.gf('django.db.models.fields.related.ForeignKey')(related_name='memberships', to=orm['users.Role'])),
|
||||
('email', self.gf('django.db.models.fields.EmailField')(null=True, max_length=255, default=None)),
|
||||
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True, default=datetime.datetime.now)),
|
||||
('token', self.gf('django.db.models.fields.CharField')(unique=True, blank=True, null=True, max_length=60, default=None)),
|
||||
))
|
||||
db.send_create_signal('projects', ['Membership'])
|
||||
|
||||
# Adding model 'Project'
|
||||
db.create_table('projects_project', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('default_points', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, blank=True, to=orm['projects.Points'], null=True, on_delete=models.SET_NULL)),
|
||||
('default_us_status', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, blank=True, to=orm['projects.UserStoryStatus'], null=True, on_delete=models.SET_NULL)),
|
||||
('default_task_status', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, blank=True, to=orm['projects.TaskStatus'], null=True, on_delete=models.SET_NULL)),
|
||||
('default_priority', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, blank=True, to=orm['projects.Priority'], null=True, on_delete=models.SET_NULL)),
|
||||
('default_severity', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, blank=True, to=orm['projects.Severity'], null=True, on_delete=models.SET_NULL)),
|
||||
('default_issue_status', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, blank=True, to=orm['projects.IssueStatus'], null=True, on_delete=models.SET_NULL)),
|
||||
('default_issue_type', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, blank=True, to=orm['projects.IssueType'], null=True, on_delete=models.SET_NULL)),
|
||||
('default_question_status', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, blank=True, to=orm['projects.QuestionStatus'], null=True, on_delete=models.SET_NULL)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=250)),
|
||||
('slug', self.gf('django.db.models.fields.SlugField')(unique=True, blank=True, max_length=250)),
|
||||
('description', self.gf('django.db.models.fields.TextField')()),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
||||
('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='owned_projects', to=orm['users.User'])),
|
||||
('public', self.gf('django.db.models.fields.BooleanField')(default=True)),
|
||||
('last_us_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)),
|
||||
('last_task_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)),
|
||||
('last_issue_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)),
|
||||
('total_milestones', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True, default=0)),
|
||||
('total_story_points', self.gf('django.db.models.fields.FloatField')(null=True, default=None)),
|
||||
('tags', self.gf('picklefield.fields.PickledObjectField')(blank=True)),
|
||||
('site', self.gf('django.db.models.fields.related.ForeignKey')(related_name='projects', null=True, to=orm['domains.Domain'], default=None)),
|
||||
))
|
||||
db.send_create_signal('projects', ['Project'])
|
||||
|
||||
# Adding model 'Attachment'
|
||||
db.create_table('projects_attachment', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], related_name='change_attachments')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='attachments')),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='change_attachments', to=orm['users.User'])),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='attachments', to=orm['projects.Project'])),
|
||||
('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
|
||||
('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
||||
|
@ -21,45 +61,13 @@ class Migration(SchemaMigration):
|
|||
))
|
||||
db.send_create_signal('projects', ['Attachment'])
|
||||
|
||||
# Adding model 'Membership'
|
||||
db.create_table('projects_membership', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], related_name='memberships')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='memberships')),
|
||||
('role', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.Role'], related_name='memberships')),
|
||||
))
|
||||
db.send_create_signal('projects', ['Membership'])
|
||||
|
||||
# Adding unique constraint on 'Membership', fields ['user', 'project']
|
||||
db.create_unique('projects_membership', ['user_id', 'project_id'])
|
||||
|
||||
# Adding model 'Project'
|
||||
db.create_table('projects_project', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('uuid', self.gf('django.db.models.fields.CharField')(max_length=40, unique=True, blank=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=250, unique=True)),
|
||||
('slug', self.gf('django.db.models.fields.SlugField')(max_length=250, unique=True, blank=True)),
|
||||
('description', self.gf('django.db.models.fields.TextField')()),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
||||
('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], related_name='owned_projects')),
|
||||
('public', self.gf('django.db.models.fields.BooleanField')(default=True)),
|
||||
('last_us_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)),
|
||||
('last_task_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)),
|
||||
('last_issue_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)),
|
||||
('total_milestones', self.gf('django.db.models.fields.IntegerField')(null=True, default=0, blank=True)),
|
||||
('total_story_points', self.gf('django.db.models.fields.FloatField')(null=True, default=None)),
|
||||
('tags', self.gf('picklefield.fields.PickledObjectField')(blank=True)),
|
||||
))
|
||||
db.send_create_signal('projects', ['Project'])
|
||||
|
||||
# Adding model 'UserStoryStatus'
|
||||
db.create_table('projects_userstorystatus', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
|
||||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('is_closed', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='us_statuses')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='us_statuses', to=orm['projects.Project'])),
|
||||
))
|
||||
db.send_create_signal('projects', ['UserStoryStatus'])
|
||||
|
||||
|
@ -71,8 +79,8 @@ class Migration(SchemaMigration):
|
|||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
|
||||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('value', self.gf('django.db.models.fields.FloatField')(null=True, default=None, blank=True)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='points')),
|
||||
('value', self.gf('django.db.models.fields.FloatField')(null=True, blank=True, default=None)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='points', to=orm['projects.Project'])),
|
||||
))
|
||||
db.send_create_signal('projects', ['Points'])
|
||||
|
||||
|
@ -86,7 +94,7 @@ class Migration(SchemaMigration):
|
|||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('is_closed', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('color', self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='task_statuses')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='task_statuses', to=orm['projects.Project'])),
|
||||
))
|
||||
db.send_create_signal('projects', ['TaskStatus'])
|
||||
|
||||
|
@ -98,7 +106,8 @@ class Migration(SchemaMigration):
|
|||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
|
||||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='priorities')),
|
||||
('color', self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='priorities', to=orm['projects.Project'])),
|
||||
))
|
||||
db.send_create_signal('projects', ['Priority'])
|
||||
|
||||
|
@ -110,7 +119,8 @@ class Migration(SchemaMigration):
|
|||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
|
||||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='severities')),
|
||||
('color', self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='severities', to=orm['projects.Project'])),
|
||||
))
|
||||
db.send_create_signal('projects', ['Severity'])
|
||||
|
||||
|
@ -123,7 +133,8 @@ class Migration(SchemaMigration):
|
|||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
|
||||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('is_closed', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='issue_statuses')),
|
||||
('color', self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issue_statuses', to=orm['projects.Project'])),
|
||||
))
|
||||
db.send_create_signal('projects', ['IssueStatus'])
|
||||
|
||||
|
@ -135,7 +146,8 @@ class Migration(SchemaMigration):
|
|||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
|
||||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='issue_types')),
|
||||
('color', self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issue_types', to=orm['projects.Project'])),
|
||||
))
|
||||
db.send_create_signal('projects', ['IssueType'])
|
||||
|
||||
|
@ -148,7 +160,8 @@ class Migration(SchemaMigration):
|
|||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
|
||||
('order', self.gf('django.db.models.fields.IntegerField')(default=10)),
|
||||
('is_closed', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='question_status')),
|
||||
('color', self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999')),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='question_status', to=orm['projects.Project'])),
|
||||
))
|
||||
db.send_create_signal('projects', ['QuestionStatus'])
|
||||
|
||||
|
@ -181,18 +194,15 @@ class Migration(SchemaMigration):
|
|||
# Removing unique constraint on 'UserStoryStatus', fields ['project', 'name']
|
||||
db.delete_unique('projects_userstorystatus', ['project_id', 'name'])
|
||||
|
||||
# Removing unique constraint on 'Membership', fields ['user', 'project']
|
||||
db.delete_unique('projects_membership', ['user_id', 'project_id'])
|
||||
|
||||
# Deleting model 'Attachment'
|
||||
db.delete_table('projects_attachment')
|
||||
|
||||
# Deleting model 'Membership'
|
||||
db.delete_table('projects_membership')
|
||||
|
||||
# Deleting model 'Project'
|
||||
db.delete_table('projects_project')
|
||||
|
||||
# Deleting model 'Attachment'
|
||||
db.delete_table('projects_attachment')
|
||||
|
||||
# Deleting model 'UserStoryStatus'
|
||||
db.delete_table('projects_userstorystatus')
|
||||
|
||||
|
@ -222,8 +232,8 @@ class Migration(SchemaMigration):
|
|||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
||||
|
@ -239,6 +249,14 @@ class Migration(SchemaMigration):
|
|||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'domains.domain': {
|
||||
'Meta': {'ordering': "('domain',)", 'object_name': 'Domain'},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '60', 'default': 'None'})
|
||||
},
|
||||
'projects.attachment': {
|
||||
'Meta': {'ordering': "['project', 'created_date']", 'object_name': 'Attachment'},
|
||||
'attached_file': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}),
|
||||
|
@ -247,96 +265,112 @@ class Migration(SchemaMigration):
|
|||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'change_attachments'"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'attachments'"})
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'change_attachments'", 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'attachments'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueStatus'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_statuses'"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueType'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_types'"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)", 'object_name': 'Membership'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'memberships'"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'memberships'"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'memberships'"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Points'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'points'"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Priority'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'priorities'"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Project'},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['projects.Membership']", 'to': "orm['users.User']", 'symmetrical': 'False', 'related_name': "'projects'"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_projects'"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'blank': 'True'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'QuestionStatus'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'question_status'"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Severity'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'severities'"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'TaskStatus'},
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueStatus'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'task_statuses'"})
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus'},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueType'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'ordering': "['project', 'role']", 'object_name': 'Membership'},
|
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True', 'default': 'datetime.datetime.now'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'null': 'True', 'max_length': '255', 'default': 'None'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'null': 'True', 'max_length': '60', 'default': 'None'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Points'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Priority'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Project'},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'blank': 'True', 'to': "orm['projects.IssueStatus']", 'null': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'blank': 'True', 'to': "orm['projects.IssueType']", 'null': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'blank': 'True', 'to': "orm['projects.Points']", 'null': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'blank': 'True', 'to': "orm['projects.Priority']", 'null': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'blank': 'True', 'to': "orm['projects.QuestionStatus']", 'null': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'blank': 'True', 'to': "orm['projects.Severity']", 'null': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'blank': 'True', 'to': "orm['projects.TaskStatus']", 'null': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'blank': 'True', 'to': "orm['projects.UserStoryStatus']", 'null': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'through': "orm['projects.Membership']", 'to': "orm['users.User']", 'symmetrical': 'False'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects'", 'null': 'True', 'to': "orm['domains.Domain']", 'default': 'None'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True', 'default': '0'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'QuestionStatus'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'us_statuses'"})
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'question_status'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Severity'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'TaskStatus'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'},
|
||||
|
@ -344,31 +378,33 @@ class Migration(SchemaMigration):
|
|||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'related_name': "'roles'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'})
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'to': "orm['auth.Permission']", 'symmetrical': 'False'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'ordering': "['username']", 'object_name': 'User'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}),
|
||||
'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '9', 'default': "'#669933'"}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Group']", 'blank': 'True', 'symmetrical': 'False'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'blank': 'True', 'default': 'None', 'max_length': '200'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'blank': 'True', 'max_length': '200', 'default': 'None'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,177 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Deleting field 'Project.uuid'
|
||||
db.delete_column('projects_project', 'uuid')
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'Project.uuid'
|
||||
db.add_column('projects_project', 'uuid',
|
||||
self.gf('django.db.models.fields.CharField')(unique=True, default='', max_length=40, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'db_table': "'django_content_type'", 'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'projects.attachment': {
|
||||
'Meta': {'object_name': 'Attachment', 'ordering': "['project', 'created_date']"},
|
||||
'attached_file': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'max_length': '500', 'blank': 'True'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'change_attachments'", 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'attachments'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'object_name': 'IssueStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'object_name': 'IssueType', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'unique_together': "(('user', 'project'),)", 'ordering': "['project', 'role', 'user']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'object_name': 'Points', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'object_name': 'Priority', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['projects.Membership']", 'related_name': "'projects'", 'symmetrical': 'False', 'to': "orm['users.User']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '250', 'blank': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'object_name': 'QuestionStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'question_status'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'object_name': 'Severity', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'object_name': 'TaskStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'object_name': 'UserStoryStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '250', 'blank': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#669933'", 'max_length': '9', 'blank': 'True'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Group']", 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'default': "'all_owned_projects'", 'max_length': '32'}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'max_length': '500', 'blank': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'default': 'None', 'max_length': '200', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Permission']", 'blank': 'True'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['projects']
|
|
@ -1,241 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'Project.default_points'
|
||||
db.add_column('projects_project', 'default_points',
|
||||
self.gf('django.db.models.fields.related.OneToOneField')(null=True, to=orm['projects.Points'], unique=True, related_name='+', on_delete=models.PROTECT, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Project.default_us_status'
|
||||
db.add_column('projects_project', 'default_us_status',
|
||||
self.gf('django.db.models.fields.related.OneToOneField')(null=True, to=orm['projects.UserStoryStatus'], unique=True, related_name='+', on_delete=models.PROTECT, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Project.default_task_status'
|
||||
db.add_column('projects_project', 'default_task_status',
|
||||
self.gf('django.db.models.fields.related.OneToOneField')(null=True, to=orm['projects.TaskStatus'], unique=True, related_name='+', on_delete=models.PROTECT, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Project.default_priority'
|
||||
db.add_column('projects_project', 'default_priority',
|
||||
self.gf('django.db.models.fields.related.OneToOneField')(null=True, to=orm['projects.Priority'], unique=True, related_name='+', on_delete=models.PROTECT, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Project.default_severity'
|
||||
db.add_column('projects_project', 'default_severity',
|
||||
self.gf('django.db.models.fields.related.OneToOneField')(null=True, to=orm['projects.Severity'], unique=True, related_name='+', on_delete=models.PROTECT, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Project.default_issue_status'
|
||||
db.add_column('projects_project', 'default_issue_status',
|
||||
self.gf('django.db.models.fields.related.OneToOneField')(null=True, to=orm['projects.IssueStatus'], unique=True, related_name='+', on_delete=models.PROTECT, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Project.default_issue_type'
|
||||
db.add_column('projects_project', 'default_issue_type',
|
||||
self.gf('django.db.models.fields.related.OneToOneField')(null=True, to=orm['projects.IssueType'], unique=True, related_name='+', on_delete=models.PROTECT, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Project.default_question_status'
|
||||
db.add_column('projects_project', 'default_question_status',
|
||||
self.gf('django.db.models.fields.related.OneToOneField')(null=True, to=orm['projects.QuestionStatus'], unique=True, related_name='+', on_delete=models.PROTECT, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'Project.default_points'
|
||||
db.delete_column('projects_project', 'default_points_id')
|
||||
|
||||
# Deleting field 'Project.default_us_status'
|
||||
db.delete_column('projects_project', 'default_us_status_id')
|
||||
|
||||
# Deleting field 'Project.default_task_status'
|
||||
db.delete_column('projects_project', 'default_task_status_id')
|
||||
|
||||
# Deleting field 'Project.default_priority'
|
||||
db.delete_column('projects_project', 'default_priority_id')
|
||||
|
||||
# Deleting field 'Project.default_severity'
|
||||
db.delete_column('projects_project', 'default_severity_id')
|
||||
|
||||
# Deleting field 'Project.default_issue_status'
|
||||
db.delete_column('projects_project', 'default_issue_status_id')
|
||||
|
||||
# Deleting field 'Project.default_issue_type'
|
||||
db.delete_column('projects_project', 'default_issue_type_id')
|
||||
|
||||
# Deleting field 'Project.default_question_status'
|
||||
db.delete_column('projects_project', 'default_question_status_id')
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'to': "orm['auth.Permission']", 'symmetrical': 'False'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'db_table': "'django_content_type'", 'object_name': 'ContentType', 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'projects.attachment': {
|
||||
'Meta': {'object_name': 'Attachment', 'ordering': "['project', 'created_date']"},
|
||||
'attached_file': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'max_length': '500', 'blank': 'True'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'change_attachments'"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'attachments'"})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'object_name': 'IssueStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_statuses'"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'object_name': 'IssueType', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_types'"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'memberships'"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'memberships'"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'memberships'"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'object_name': 'Points', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'points'"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'object_name': 'Priority', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'priorities'"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'to': "orm['projects.IssueStatus']", 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.PROTECT', 'blank': 'True'}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'to': "orm['projects.IssueType']", 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.PROTECT', 'blank': 'True'}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'to': "orm['projects.Points']", 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.PROTECT', 'blank': 'True'}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'to': "orm['projects.Priority']", 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.PROTECT', 'blank': 'True'}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'to': "orm['projects.QuestionStatus']", 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.PROTECT', 'blank': 'True'}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'to': "orm['projects.Severity']", 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.PROTECT', 'blank': 'True'}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'to': "orm['projects.TaskStatus']", 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.PROTECT', 'blank': 'True'}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'to': "orm['projects.UserStoryStatus']", 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.PROTECT', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'through': "orm['projects.Membership']", 'to': "orm['users.User']", 'symmetrical': 'False'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_projects'"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'unique': 'True', 'max_length': '250'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'object_name': 'QuestionStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'question_status'"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'object_name': 'Severity', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'severities'"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'object_name': 'TaskStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'task_statuses'"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'object_name': 'UserStoryStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'us_statuses'"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'to': "orm['auth.Permission']", 'symmetrical': 'False'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'unique': 'True', 'max_length': '250'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '9', 'default': "'#669933'"}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']", 'symmetrical': 'False'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'max_length': '500', 'blank': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '200', 'default': 'None', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']", 'symmetrical': 'False'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['projects']
|
|
@ -1,270 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'IssueStatus.color'
|
||||
db.add_column('projects_issuestatus', 'color',
|
||||
self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999'),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Severity.color'
|
||||
db.add_column('projects_severity', 'color',
|
||||
self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999'),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'QuestionStatus.color'
|
||||
db.add_column('projects_questionstatus', 'color',
|
||||
self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999'),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'IssueType.color'
|
||||
db.add_column('projects_issuetype', 'color',
|
||||
self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999'),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
# Changing field 'Project.default_issue_type'
|
||||
db.alter_column('projects_project', 'default_issue_type_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.SET_NULL, to=orm['projects.IssueType']))
|
||||
|
||||
# Changing field 'Project.default_points'
|
||||
db.alter_column('projects_project', 'default_points_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.SET_NULL, to=orm['projects.Points']))
|
||||
|
||||
# Changing field 'Project.default_priority'
|
||||
db.alter_column('projects_project', 'default_priority_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.SET_NULL, to=orm['projects.Priority']))
|
||||
|
||||
# Changing field 'Project.default_question_status'
|
||||
db.alter_column('projects_project', 'default_question_status_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.SET_NULL, to=orm['projects.QuestionStatus']))
|
||||
|
||||
# Changing field 'Project.default_us_status'
|
||||
db.alter_column('projects_project', 'default_us_status_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.SET_NULL, to=orm['projects.UserStoryStatus']))
|
||||
|
||||
# Changing field 'Project.default_severity'
|
||||
db.alter_column('projects_project', 'default_severity_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.SET_NULL, to=orm['projects.Severity']))
|
||||
|
||||
# Changing field 'Project.default_task_status'
|
||||
db.alter_column('projects_project', 'default_task_status_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.SET_NULL, to=orm['projects.TaskStatus']))
|
||||
|
||||
# Changing field 'Project.default_issue_status'
|
||||
db.alter_column('projects_project', 'default_issue_status_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.SET_NULL, to=orm['projects.IssueStatus']))
|
||||
# Adding field 'Priority.color'
|
||||
db.add_column('projects_priority', 'color',
|
||||
self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999'),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'IssueStatus.color'
|
||||
db.delete_column('projects_issuestatus', 'color')
|
||||
|
||||
# Deleting field 'Severity.color'
|
||||
db.delete_column('projects_severity', 'color')
|
||||
|
||||
# Deleting field 'QuestionStatus.color'
|
||||
db.delete_column('projects_questionstatus', 'color')
|
||||
|
||||
# Deleting field 'IssueType.color'
|
||||
db.delete_column('projects_issuetype', 'color')
|
||||
|
||||
|
||||
# Changing field 'Project.default_issue_type'
|
||||
db.alter_column('projects_project', 'default_issue_type_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.PROTECT, to=orm['projects.IssueType']))
|
||||
|
||||
# Changing field 'Project.default_points'
|
||||
db.alter_column('projects_project', 'default_points_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.PROTECT, to=orm['projects.Points']))
|
||||
|
||||
# Changing field 'Project.default_priority'
|
||||
db.alter_column('projects_project', 'default_priority_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.PROTECT, to=orm['projects.Priority']))
|
||||
|
||||
# Changing field 'Project.default_question_status'
|
||||
db.alter_column('projects_project', 'default_question_status_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.PROTECT, to=orm['projects.QuestionStatus']))
|
||||
|
||||
# Changing field 'Project.default_us_status'
|
||||
db.alter_column('projects_project', 'default_us_status_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.PROTECT, to=orm['projects.UserStoryStatus']))
|
||||
|
||||
# Changing field 'Project.default_severity'
|
||||
db.alter_column('projects_project', 'default_severity_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.PROTECT, to=orm['projects.Severity']))
|
||||
|
||||
# Changing field 'Project.default_task_status'
|
||||
db.alter_column('projects_project', 'default_task_status_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.PROTECT, to=orm['projects.TaskStatus']))
|
||||
|
||||
# Changing field 'Project.default_issue_status'
|
||||
db.alter_column('projects_project', 'default_issue_status_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, null=True, on_delete=models.PROTECT, to=orm['projects.IssueStatus']))
|
||||
# Deleting field 'Priority.color'
|
||||
db.delete_column('projects_priority', 'color')
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'ordering': "('name',)", 'db_table': "'django_content_type'", 'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'projects.attachment': {
|
||||
'Meta': {'ordering': "['project', 'created_date']", 'object_name': 'Attachment'},
|
||||
'attached_file': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'change_attachments'", 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'attachments'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'object_name': 'IssueStatus', 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'object_name': 'IssueType', 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'ordering': "['project', 'role', 'user']", 'object_name': 'Membership', 'unique_together': "(('user', 'project'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'object_name': 'Points', 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'object_name': 'Priority', 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Project'},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.IssueStatus']"}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.IssueType']"}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.Points']"}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.Priority']"}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.QuestionStatus']"}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.Severity']"}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.TaskStatus']"}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.UserStoryStatus']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['projects.Membership']", 'symmetrical': 'False', 'related_name': "'projects'", 'to': "orm['users.User']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True', 'default': '0'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'object_name': 'QuestionStatus', 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'question_status'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'object_name': 'Severity', 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'object_name': 'TaskStatus', 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'object_name': 'UserStoryStatus', 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'roles'", 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'ordering': "['username']", 'object_name': 'User'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'blank': 'True', 'default': "'#669933'"}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True', 'default': "''"}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True', 'default': "''"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['projects']
|
|
@ -1,242 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Removing unique constraint on 'Membership', fields ['user', 'project']
|
||||
db.delete_unique('projects_membership', ['user_id', 'project_id'])
|
||||
|
||||
# Adding field 'Project.site'
|
||||
db.add_column('projects_project', 'site',
|
||||
self.gf('django.db.models.fields.related.ForeignKey')(default=None, related_name='projects', null=True, to=orm['base.Site']),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Membership.email'
|
||||
db.add_column('projects_membership', 'email',
|
||||
self.gf('django.db.models.fields.EmailField')(max_length=255, default=None, null=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Membership.created_at'
|
||||
db.add_column('projects_membership', 'created_at',
|
||||
self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now, blank=True, auto_now_add=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Membership.token'
|
||||
db.add_column('projects_membership', 'token',
|
||||
self.gf('django.db.models.fields.CharField')(max_length=60, default=None, blank=True, null=True, unique=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
# Changing field 'Membership.user'
|
||||
db.alter_column('projects_membership', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['users.User']))
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'Project.site'
|
||||
db.delete_column('projects_project', 'site_id')
|
||||
|
||||
# Deleting field 'Membership.email'
|
||||
db.delete_column('projects_membership', 'email')
|
||||
|
||||
# Deleting field 'Membership.created_at'
|
||||
db.delete_column('projects_membership', 'created_at')
|
||||
|
||||
# Deleting field 'Membership.token'
|
||||
db.delete_column('projects_membership', 'token')
|
||||
|
||||
|
||||
# User chose to not deal with backwards NULL issues for 'Membership.user'
|
||||
raise RuntimeError("Cannot reverse this migration. 'Membership.user' and its values cannot be restored.")
|
||||
|
||||
# The following code is provided here to aid in writing a correct migration
|
||||
# Changing field 'Membership.user'
|
||||
db.alter_column('projects_membership', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User']))
|
||||
# Adding unique constraint on 'Membership', fields ['user', 'project']
|
||||
db.create_unique('projects_membership', ['user_id', 'project_id'])
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'base.site': {
|
||||
'Meta': {'object_name': 'Site', 'ordering': "('domain',)"},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'max_length': '60', 'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'object_name': 'ContentType', 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'projects.attachment': {
|
||||
'Meta': {'object_name': 'Attachment', 'ordering': "['project', 'created_date']"},
|
||||
'attached_file': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'change_attachments'", 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'attachments'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'object_name': 'IssueStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'object_name': 'IssueType', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role']"},
|
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'default': 'None', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '60', 'default': 'None', 'blank': 'True', 'null': 'True', 'unique': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'memberships'", 'null': 'True', 'to': "orm['users.User']", 'blank': 'True'})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'object_name': 'Points', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'object_name': 'Priority', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['projects.IssueStatus']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['projects.IssueType']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['projects.Points']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['projects.Priority']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['projects.QuestionStatus']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['projects.Severity']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['projects.TaskStatus']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['projects.UserStoryStatus']", 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'projects'", 'through': "orm['projects.Membership']", 'to': "orm['users.User']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'projects'", 'null': 'True', 'to': "orm['base.Site']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'object_name': 'QuestionStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'question_status'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'object_name': 'Severity', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'object_name': 'TaskStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'object_name': 'UserStoryStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'roles'", 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'default': 'None', 'null': 'True', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['projects']
|
|
@ -1,210 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import DataMigration
|
||||
from django.db import models
|
||||
|
||||
class Migration(DataMigration):
|
||||
depends_on = (
|
||||
("base", "0003_initial_sites_data"),
|
||||
)
|
||||
|
||||
def forwards(self, orm):
|
||||
"Write your forwards methods here."
|
||||
# Note: Don't use "from appname.models import ModelName".
|
||||
# Use orm.ModelName to refer to models in this application,
|
||||
# and orm['appname.ModelName'] for models in other applications.
|
||||
site = orm["base.Site"].objects.get(pk=1)
|
||||
for project in orm["projects.Project"].objects.all():
|
||||
project.site = site
|
||||
project.save()
|
||||
|
||||
for member in orm["projects.Membership"].objects.all():
|
||||
member.email = member.user.email
|
||||
member.save()
|
||||
|
||||
def backwards(self, orm):
|
||||
"Write your backwards methods here."
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'base.site': {
|
||||
'Meta': {'object_name': 'Site', 'ordering': "('domain',)"},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'max_length': '60', 'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)", 'db_table': "'django_content_type'"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'projects.attachment': {
|
||||
'Meta': {'object_name': 'Attachment', 'ordering': "['project', 'created_date']"},
|
||||
'attached_file': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'change_attachments'", 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'attachments'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'object_name': 'IssueStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'object_name': 'IssueType', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role']"},
|
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'default': 'None', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '60', 'unique': 'True', 'default': 'None', 'null': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'memberships'", 'default': 'None', 'null': 'True', 'to': "orm['users.User']"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'object_name': 'Points', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'blank': 'True', 'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'object_name': 'Priority', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'unique': 'True', 'null': 'True', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.IssueStatus']"}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'unique': 'True', 'null': 'True', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.IssueType']"}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'unique': 'True', 'null': 'True', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.Points']"}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'unique': 'True', 'null': 'True', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.Priority']"}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'unique': 'True', 'null': 'True', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.QuestionStatus']"}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'unique': 'True', 'null': 'True', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.Severity']"}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'unique': 'True', 'null': 'True', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.TaskStatus']"}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'unique': 'True', 'null': 'True', 'related_name': "'+'", 'blank': 'True', 'to': "orm['projects.UserStoryStatus']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'symmetrical': 'False', 'to': "orm['users.User']", 'through': "orm['projects.Membership']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects'", 'default': 'None', 'null': 'True', 'to': "orm['base.Site']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'blank': 'True', 'default': '0', 'null': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'object_name': 'QuestionStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'question_status'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'object_name': 'Severity', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'object_name': 'TaskStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'object_name': 'UserStoryStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'blank': 'True', 'symmetrical': 'False', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'blank': 'True', 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['projects']
|
||||
symmetrical = True
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
@ -11,17 +11,16 @@ class Migration(SchemaMigration):
|
|||
# Adding model 'Milestone'
|
||||
db.create_table('milestones_milestone', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('uuid', self.gf('django.db.models.fields.CharField')(blank=True, unique=True, max_length=40)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=200)),
|
||||
('slug', self.gf('django.db.models.fields.SlugField')(blank=True, unique=True, max_length=250)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, to=orm['users.User'], related_name='owned_milestones', null=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=200, db_index=True)),
|
||||
('slug', self.gf('django.db.models.fields.SlugField')(max_length=250, unique=True, blank=True)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(null=True, related_name='owned_milestones', blank=True, to=orm['users.User'])),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='milestones', to=orm['projects.Project'])),
|
||||
('estimated_start', self.gf('django.db.models.fields.DateField')(blank=True, default=None, null=True)),
|
||||
('estimated_finish', self.gf('django.db.models.fields.DateField')(blank=True, default=None, null=True)),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)),
|
||||
('estimated_start', self.gf('django.db.models.fields.DateField')(null=True, default=None, blank=True)),
|
||||
('estimated_finish', self.gf('django.db.models.fields.DateField')(null=True, default=None, blank=True)),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
||||
('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
|
||||
('closed', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('disponibility', self.gf('django.db.models.fields.FloatField')(blank=True, default=0.0, null=True)),
|
||||
('disponibility', self.gf('django.db.models.fields.FloatField')(null=True, default=0.0, blank=True)),
|
||||
('order', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)),
|
||||
))
|
||||
db.send_create_signal('milestones', ['Milestone'])
|
||||
|
@ -42,8 +41,8 @@ class Migration(SchemaMigration):
|
|||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'to': "orm['auth.Permission']"})
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"},
|
||||
|
@ -53,53 +52,138 @@ class Migration(SchemaMigration):
|
|||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)", 'db_table': "'django_content_type'"},
|
||||
'Meta': {'db_table': "'django_content_type'", 'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'domains.domain': {
|
||||
'Meta': {'object_name': 'Domain', 'ordering': "('domain',)"},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '60', 'default': 'None'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'object_name': 'Milestone', 'unique_together': "(('name', 'project'),)", 'ordering': "['project', '-created_date']"},
|
||||
'Meta': {'object_name': 'Milestone', 'unique_together': "(('name', 'project'),)", 'ordering': "['project', 'created_date']"},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'blank': 'True', 'default': '0.0', 'null': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': '0.0', 'blank': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'db_index': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'to': "orm['users.User']", 'related_name': "'owned_milestones'", 'null': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'related_name': "'owned_milestones'", 'blank': 'True', 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'unique': 'True', 'max_length': '250'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'blank': 'True', 'unique': 'True', 'max_length': '40'})
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'object_name': 'IssueStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'object_name': 'IssueType', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'unique_together': "(('user', 'project'),)", 'ordering': "['project', 'role', 'user']"},
|
||||
'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role']"},
|
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'default': 'datetime.datetime.now', 'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'null': 'True', 'max_length': '255', 'default': 'None'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"})
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '60', 'unique': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'related_name': "'memberships'", 'default': 'None', 'blank': 'True', 'to': "orm['users.User']"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'object_name': 'Points', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'object_name': 'Priority', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'related_name': "'+'", 'to': "orm['projects.IssueStatus']"}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'related_name': "'+'", 'to': "orm['projects.IssueType']"}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'related_name': "'+'", 'to': "orm['projects.Points']"}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'related_name': "'+'", 'to': "orm['projects.Priority']"}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'related_name': "'+'", 'to': "orm['projects.QuestionStatus']"}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'related_name': "'+'", 'to': "orm['projects.Severity']"}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'related_name': "'+'", 'to': "orm['projects.TaskStatus']"}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'related_name': "'+'", 'to': "orm['projects.UserStoryStatus']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'symmetrical': 'False', 'through': "orm['projects.Membership']", 'to': "orm['users.User']"}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'projects'", 'to': "orm['users.User']", 'through': "orm['projects.Membership']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'unique': 'True', 'max_length': '250'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'related_name': "'projects'", 'default': 'None', 'to': "orm['domains.Domain']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'blank': 'True', 'default': '0', 'null': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'blank': 'True', 'unique': 'True', 'max_length': '40'})
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'object_name': 'QuestionStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'question_status'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'object_name': 'Severity', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'object_name': 'TaskStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'object_name': 'UserStoryStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
|
@ -107,31 +191,33 @@ class Migration(SchemaMigration):
|
|||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'unique': 'True', 'max_length': '250'})
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'roles'", 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "'#669933'", 'max_length': '9'}),
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "''", 'max_length': '20'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "''", 'max_length': '20'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Group']", 'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'related_name': "'user_set'", 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'blank': 'True', 'null': 'True', 'max_length': '500'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': 'None', 'null': 'True', 'max_length': '200'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Permission']", 'blank': 'True'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'max_length': '500', 'blank': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '200', 'default': 'None', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'related_name': "'user_set'", 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,119 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Deleting field 'Milestone.uuid'
|
||||
db.delete_column('milestones_milestone', 'uuid')
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'Milestone.uuid'
|
||||
db.add_column('milestones_milestone', 'uuid',
|
||||
self.gf('django.db.models.fields.CharField')(default='', max_length=40, blank=True, unique=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'object_name': 'Permission'},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)", 'db_table': "'django_content_type'", 'object_name': 'ContentType'},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'unique_together': "(('name', 'project'),)", 'ordering': "['project', '-created_date']", 'object_name': 'Milestone'},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'default': '0.0', 'blank': 'True', 'null': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'default': 'None', 'blank': 'True', 'null': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'default': 'None', 'blank': 'True', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'db_index': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'blank': 'True', 'null': 'True', 'related_name': "'owned_milestones'"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'milestones'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'unique_together': "(('user', 'project'),)", 'ordering': "['project', 'role', 'user']", 'object_name': 'Membership'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'memberships'"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'memberships'"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'memberships'"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Project'},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['users.User']", 'through': "orm['projects.Membership']", 'related_name': "'projects'"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_projects'"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True', 'null': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Permission']", 'related_name': "'roles'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'ordering': "['username']", 'object_name': 'User'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#669933'", 'max_length': '9', 'blank': 'True'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Group']", 'related_name': "'user_set'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'default': "'all_owned_projects'", 'max_length': '32'}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'blank': 'True', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']", 'related_name': "'user_set'"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['milestones']
|
|
@ -14,7 +14,7 @@ from . import create_milestone
|
|||
|
||||
|
||||
class MilestonesTestCase(test.TestCase):
|
||||
fixtures = ["initial_role.json", ]
|
||||
fixtures = ["initial_role.json", "initial_domains.json",]
|
||||
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1)
|
||||
|
|
|
@ -114,7 +114,7 @@ class Project(ProjectDefaults, models.Model):
|
|||
total_story_points = models.FloatField(default=None, null=True, blank=False,
|
||||
verbose_name=_("total story points"))
|
||||
tags = PickledObjectField(null=False, blank=True, verbose_name=_("tags"))
|
||||
site = models.ForeignKey("base.Site", related_name="projects", null=True, default=None)
|
||||
site = models.ForeignKey("domains.Domain", related_name="projects", null=True, default=None)
|
||||
|
||||
notifiable_fields = [
|
||||
"name",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
@ -11,19 +11,18 @@ class Migration(SchemaMigration):
|
|||
# Adding model 'Task'
|
||||
db.create_table('tasks_task', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('uuid', self.gf('django.db.models.fields.CharField')(unique=True, blank=True, max_length=40)),
|
||||
('user_story', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tasks', to=orm['userstories.UserStory'], null=True, blank=True)),
|
||||
('ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, blank=True, db_index=True, default=None)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='owned_tasks', to=orm['users.User'], null=True, blank=True, default=None)),
|
||||
('user_story', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, to=orm['userstories.UserStory'], related_name='tasks', null=True)),
|
||||
('ref', self.gf('django.db.models.fields.BigIntegerField')(db_index=True, blank=True, default=None, null=True)),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, default=None, related_name='owned_tasks', to=orm['users.User'], null=True)),
|
||||
('status', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tasks', to=orm['projects.TaskStatus'])),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tasks', to=orm['projects.Project'])),
|
||||
('milestone', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tasks', to=orm['milestones.Milestone'], null=True, blank=True, default=None)),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
||||
('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
||||
('finished_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
|
||||
('milestone', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, default=None, related_name='tasks', to=orm['milestones.Milestone'], null=True)),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)),
|
||||
('modified_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now=True)),
|
||||
('finished_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, null=True)),
|
||||
('subject', self.gf('django.db.models.fields.CharField')(max_length=500)),
|
||||
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
|
||||
('assigned_to', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_storys_assigned_to_me', to=orm['users.User'], null=True, blank=True, default=None)),
|
||||
('assigned_to', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, default=None, related_name='user_storys_assigned_to_me', to=orm['users.User'], null=True)),
|
||||
('tags', self.gf('picklefield.fields.PickledObjectField')(blank=True)),
|
||||
('is_iocaine', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
))
|
||||
|
@ -58,7 +57,7 @@ class Migration(SchemaMigration):
|
|||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'})
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'to': "orm['auth.Permission']", 'symmetrical': 'False'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
||||
|
@ -68,65 +67,125 @@ class Migration(SchemaMigration):
|
|||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType'},
|
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'ordering': "['project', '-created_date']", 'unique_together': "(('name', 'project'),)", 'object_name': 'Milestone'},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True', 'default': '0.0'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'domains.domain': {
|
||||
'Meta': {'ordering': "('domain',)", 'object_name': 'Domain'},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'max_length': '60', 'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'ordering': "['project', 'created_date']", 'unique_together': "(('name', 'project'),)", 'object_name': 'Milestone'},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'blank': 'True', 'default': '0.0', 'null': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_milestones'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'to': "orm['users.User']", 'related_name': "'owned_milestones'", 'null': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'max_length': '40'})
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueStatus'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueType'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)", 'object_name': 'Membership'},
|
||||
'Meta': {'ordering': "['project', 'role']", 'object_name': 'Membership'},
|
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True', 'default': 'datetime.datetime.now'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'default': 'None', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"})
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True', 'default': 'None', 'unique': 'True', 'null': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'default': 'None', 'related_name': "'memberships'", 'to': "orm['users.User']", 'null': 'True'})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Points'},
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Points'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True', 'default': 'None'})
|
||||
'value': ('django.db.models.fields.FloatField', [], {'blank': 'True', 'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Priority'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Project'},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.IssueStatus']", 'unique': 'True', 'null': 'True', 'related_name': "'+'"}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.IssueType']", 'unique': 'True', 'null': 'True', 'related_name': "'+'"}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.Points']", 'unique': 'True', 'null': 'True', 'related_name': "'+'"}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.Priority']", 'unique': 'True', 'null': 'True', 'related_name': "'+'"}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.QuestionStatus']", 'unique': 'True', 'null': 'True', 'related_name': "'+'"}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.Severity']", 'unique': 'True', 'null': 'True', 'related_name': "'+'"}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.TaskStatus']", 'unique': 'True', 'null': 'True', 'related_name': "'+'"}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.UserStoryStatus']", 'unique': 'True', 'null': 'True', 'related_name': "'+'"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'through': "orm['projects.Membership']", 'to': "orm['users.User']", 'symmetrical': 'False'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['projects.Membership']", 'related_name': "'projects'", 'symmetrical': 'False', 'to': "orm['users.User']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'projects'", 'to': "orm['domains.Domain']", 'null': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True', 'default': '0'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'max_length': '40'})
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'blank': 'True', 'default': '0', 'null': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'QuestionStatus'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'question_status'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Severity'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'TaskStatus'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'TaskStatus'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
|
@ -134,7 +193,7 @@ class Migration(SchemaMigration):
|
|||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus'},
|
||||
'Meta': {'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
|
@ -143,23 +202,22 @@ class Migration(SchemaMigration):
|
|||
},
|
||||
'tasks.task': {
|
||||
'Meta': {'ordering': "['project', 'created_date']", 'unique_together': "(('ref', 'project'),)", 'object_name': 'Task'},
|
||||
'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_storys_assigned_to_me'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'default': 'None', 'related_name': "'user_storys_assigned_to_me'", 'to': "orm['users.User']", 'null': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'finished_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'finished_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_iocaine': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['milestones.Milestone']", 'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_tasks'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'default': 'None'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'default': 'None', 'related_name': "'tasks'", 'to': "orm['milestones.Milestone']", 'null': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'default': 'None', 'related_name': "'owned_tasks'", 'to': "orm['users.User']", 'null': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['projects.Project']"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True', 'db_index': 'True', 'default': 'None'}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['projects.TaskStatus']"}),
|
||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'user_story': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['userstories.UserStory']", 'null': 'True', 'blank': 'True'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'max_length': '40'}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'watched_tasks'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'symmetrical': 'False'})
|
||||
'user_story': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'to': "orm['userstories.UserStory']", 'related_name': "'tasks'", 'null': 'True'}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'to': "orm['users.User']", 'related_name': "'watched_tasks'", 'symmetrical': 'False', 'null': 'True'})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'},
|
||||
|
@ -167,34 +225,36 @@ class Migration(SchemaMigration):
|
|||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'to': "orm['auth.Permission']", 'symmetrical': 'False'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'ordering': "['username']", 'object_name': 'User'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '9', 'default': "'#669933'"}),
|
||||
'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "'#669933'", 'max_length': '9'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "''", 'max_length': '20'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "''", 'max_length': '20'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Group']", 'blank': 'True', 'symmetrical': 'False'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'default': "'all_owned_projects'", 'max_length': '32'}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'blank': 'True', 'max_length': '200', 'default': 'None'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
},
|
||||
'userstories.rolepoints': {
|
||||
'Meta': {'object_name': 'RolePoints', 'unique_together': "(('user_story', 'role'),)"},
|
||||
'Meta': {'ordering': "['user_story', 'role']", 'unique_together': "(('user_story', 'role'),)", 'object_name': 'RolePoints'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'points': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['projects.Points']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['users.Role']"}),
|
||||
|
@ -203,23 +263,22 @@ class Migration(SchemaMigration):
|
|||
'userstories.userstory': {
|
||||
'Meta': {'ordering': "['project', 'order']", 'unique_together': "(('ref', 'project'),)", 'object_name': 'UserStory'},
|
||||
'client_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'finish_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'finish_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'related_name': "'user_stories'", 'to': "orm['milestones.Milestone']", 'on_delete': 'models.SET_NULL', 'default': 'None'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['milestones.Milestone']", 'related_name': "'user_stories'", 'default': 'None', 'null': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_user_stories'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'points': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'userstories'", 'through': "orm['userstories.RolePoints']", 'to': "orm['projects.Points']", 'symmetrical': 'False'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['users.User']", 'related_name': "'owned_user_stories'", 'null': 'True'}),
|
||||
'points': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['userstories.RolePoints']", 'related_name': "'userstories'", 'symmetrical': 'False', 'to': "orm['projects.Points']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'to': "orm['projects.Project']"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True', 'db_index': 'True', 'default': 'None'}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'to': "orm['projects.UserStoryStatus']", 'null': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['projects.UserStoryStatus']", 'related_name': "'user_stories'", 'null': 'True'}),
|
||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'team_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'max_length': '40'}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'watched_us'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'symmetrical': 'False'})
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'to': "orm['users.User']", 'related_name': "'watched_us'", 'symmetrical': 'False', 'null': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,196 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Deleting field 'Task.uuid'
|
||||
db.delete_column('tasks_task', 'uuid')
|
||||
|
||||
|
||||
# Changing field 'Task.modified_date'
|
||||
db.alter_column('tasks_task', 'modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True))
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'Task.uuid'
|
||||
db.add_column('tasks_task', 'uuid',
|
||||
self.gf('django.db.models.fields.CharField')(unique=True, max_length=40, default='', blank=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
# Changing field 'Task.modified_date'
|
||||
db.alter_column('tasks_task', 'modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True))
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)", 'db_table': "'django_content_type'"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'object_name': 'Milestone', 'unique_together': "(('name', 'project'),)", 'ordering': "['project', '-created_date']"},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'blank': 'True', 'default': '0.0', 'null': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_milestones'", 'null': 'True', 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '250', 'blank': 'True'})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'unique_together': "(('user', 'project'),)", 'ordering': "['project', 'role', 'user']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'object_name': 'Points', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'blank': 'True', 'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'symmetrical': 'False', 'to': "orm['users.User']", 'through': "orm['projects.Membership']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '250', 'blank': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'blank': 'True', 'default': '0', 'null': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'object_name': 'TaskStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'object_name': 'UserStoryStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"})
|
||||
},
|
||||
'tasks.task': {
|
||||
'Meta': {'object_name': 'Task', 'unique_together': "(('ref', 'project'),)", 'ordering': "['project', 'created_date']"},
|
||||
'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user_storys_assigned_to_me'", 'default': 'None', 'null': 'True', 'to': "orm['users.User']"}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'finished_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_iocaine': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tasks'", 'default': 'None', 'null': 'True', 'to': "orm['milestones.Milestone']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_tasks'", 'default': 'None', 'null': 'True', 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['projects.Project']"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['projects.TaskStatus']"}),
|
||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'user_story': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tasks'", 'null': 'True', 'to': "orm['userstories.UserStory']"}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'watched_tasks'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['users.User']"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '250', 'blank': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'blank': 'True', 'symmetrical': 'False', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'blank': 'True', 'symmetrical': 'False', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
},
|
||||
'userstories.rolepoints': {
|
||||
'Meta': {'object_name': 'RolePoints', 'unique_together': "(('user_story', 'role'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'points': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['projects.Points']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['users.Role']"}),
|
||||
'user_story': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['userstories.UserStory']"})
|
||||
},
|
||||
'userstories.userstory': {
|
||||
'Meta': {'object_name': 'UserStory', 'unique_together': "(('ref', 'project'),)", 'ordering': "['project', 'order']"},
|
||||
'client_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'finish_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'default': 'None', 'null': 'True', 'to': "orm['milestones.Milestone']", 'blank': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_user_stories'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['users.User']"}),
|
||||
'points': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'userstories'", 'symmetrical': 'False', 'to': "orm['projects.Points']", 'through': "orm['userstories.RolePoints']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'to': "orm['projects.Project']"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'blank': 'True', 'default': 'None', 'null': 'True'}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user_stories'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['projects.UserStoryStatus']"}),
|
||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'team_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'watched_us'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['users.User']"})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['tasks']
|
|
@ -18,7 +18,7 @@ from . import create_task
|
|||
|
||||
|
||||
class TasksTestCase(test.TestCase):
|
||||
fixtures = ["initial_role.json", "initial_site.json"]
|
||||
fixtures = ["initial_role.json", "initial_domains.json"]
|
||||
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1) # Project owner
|
||||
|
|
|
@ -13,7 +13,7 @@ from greenmine.projects.models import Project, Membership
|
|||
from . import create_project, add_membership
|
||||
|
||||
class ProfileTestCase(test.TestCase):
|
||||
fixtures = ["initial_role.json", "initial_site.json"]
|
||||
fixtures = ["initial_role.json", "initial_domains.json"]
|
||||
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1, is_superuser=True)
|
||||
|
@ -154,7 +154,7 @@ class ProfileTestCase(test.TestCase):
|
|||
|
||||
|
||||
class ProjectsTestCase(test.TestCase):
|
||||
fixtures = ["initial_role.json", "initial_site.json"]
|
||||
fixtures = ["initial_role.json", "initial_domains.json"]
|
||||
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
@ -11,9 +11,9 @@ class Migration(SchemaMigration):
|
|||
# Adding model 'RolePoints'
|
||||
db.create_table('userstories_rolepoints', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('user_story', self.gf('django.db.models.fields.related.ForeignKey')(related_name='role_points', to=orm['userstories.UserStory'])),
|
||||
('role', self.gf('django.db.models.fields.related.ForeignKey')(related_name='role_points', to=orm['users.Role'])),
|
||||
('points', self.gf('django.db.models.fields.related.ForeignKey')(related_name='role_points', to=orm['projects.Points'])),
|
||||
('user_story', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['userstories.UserStory'], related_name='role_points')),
|
||||
('role', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.Role'], related_name='role_points')),
|
||||
('points', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Points'], related_name='role_points')),
|
||||
))
|
||||
db.send_create_signal('userstories', ['RolePoints'])
|
||||
|
||||
|
@ -23,16 +23,15 @@ class Migration(SchemaMigration):
|
|||
# Adding model 'UserStory'
|
||||
db.create_table('userstories_userstory', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('uuid', self.gf('django.db.models.fields.CharField')(max_length=40, unique=True, blank=True)),
|
||||
('ref', self.gf('django.db.models.fields.BigIntegerField')(db_index=True, null=True, default=None, blank=True)),
|
||||
('milestone', self.gf('django.db.models.fields.related.ForeignKey')(null=True, blank=True, to=orm['milestones.Milestone'], default=None, related_name='user_stories', on_delete=models.SET_NULL)),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_stories', to=orm['projects.Project'])),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(null=True, blank=True, related_name='owned_user_stories', to=orm['users.User'], on_delete=models.SET_NULL)),
|
||||
('status', self.gf('django.db.models.fields.related.ForeignKey')(null=True, blank=True, related_name='user_stories', to=orm['projects.UserStoryStatus'], on_delete=models.SET_NULL)),
|
||||
('ref', self.gf('django.db.models.fields.BigIntegerField')(default=None, blank=True, db_index=True, null=True)),
|
||||
('milestone', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_stories', default=None, blank=True, on_delete=models.SET_NULL, null=True, to=orm['milestones.Milestone'])),
|
||||
('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='user_stories')),
|
||||
('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='owned_user_stories', blank=True, on_delete=models.SET_NULL, null=True, to=orm['users.User'])),
|
||||
('status', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_stories', blank=True, on_delete=models.SET_NULL, null=True, to=orm['projects.UserStoryStatus'])),
|
||||
('order', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=100)),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
|
||||
('created_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)),
|
||||
('modified_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now=True)),
|
||||
('finish_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
|
||||
('finish_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, null=True)),
|
||||
('subject', self.gf('django.db.models.fields.CharField')(max_length=500)),
|
||||
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
|
||||
('client_requirement', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
|
@ -75,140 +74,210 @@ class Migration(SchemaMigration):
|
|||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
||||
'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType'},
|
||||
'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'", 'ordering': "('name',)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'ordering': "['project', '-created_date']", 'unique_together': "(('name', 'project'),)", 'object_name': 'Milestone'},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': '0.0', 'blank': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'related_name': "'owned_milestones'", 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'blank': 'True'})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)", 'object_name': 'Membership'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Points'},
|
||||
'domains.domain': {
|
||||
'Meta': {'object_name': 'Domain', 'ordering': "('domain',)"},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'})
|
||||
'public_register': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'scheme': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '60', 'null': 'True'})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Project'},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'milestones.milestone': {
|
||||
'Meta': {'unique_together': "(('name', 'project'),)", 'object_name': 'Milestone', 'ordering': "['project', 'created_date']"},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'default': '0.0', 'blank': 'True', 'null': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'default': 'None', 'blank': 'True', 'null': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'default': 'None', 'blank': 'True', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['projects.Membership']", 'symmetrical': 'False', 'related_name': "'projects'", 'to': "orm['users.User']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'blank': 'True'})
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'db_index': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_milestones'", 'blank': 'True', 'null': 'True', 'to': "orm['users.User']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'milestones'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus'},
|
||||
'projects.issuestatus': {
|
||||
'Meta': {'unique_together': "(('project', 'name'),)", 'object_name': 'IssueStatus', 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"})
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_statuses'"})
|
||||
},
|
||||
'projects.issuetype': {
|
||||
'Meta': {'unique_together': "(('project', 'name'),)", 'object_name': 'IssueType', 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_types'"})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role']"},
|
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'memberships'"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'memberships'"}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'unique': 'True', 'default': 'None', 'blank': 'True', 'max_length': '60', 'null': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'default': 'None', 'blank': 'True', 'null': 'True', 'to': "orm['users.User']"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'unique_together': "(('project', 'name'),)", 'object_name': 'Points', 'ordering': "['project', 'order', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'points'"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'default': 'None', 'blank': 'True', 'null': 'True'})
|
||||
},
|
||||
'projects.priority': {
|
||||
'Meta': {'unique_together': "(('project', 'name'),)", 'object_name': 'Priority', 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'priorities'"})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.IssueStatus']"}),
|
||||
'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.IssueType']"}),
|
||||
'default_points': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.Points']"}),
|
||||
'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.Priority']"}),
|
||||
'default_question_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.QuestionStatus']"}),
|
||||
'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.Severity']"}),
|
||||
'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.TaskStatus']"}),
|
||||
'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'unique': 'True', 'related_name': "'+'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.UserStoryStatus']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'projects'", 'to': "orm['users.User']", 'through': "orm['projects.Membership']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_projects'"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'site': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['domains.Domain']", 'null': 'True', 'related_name': "'projects'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True', 'null': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'})
|
||||
},
|
||||
'projects.questionstatus': {
|
||||
'Meta': {'unique_together': "(('project', 'name'),)", 'object_name': 'QuestionStatus', 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'question_status'"})
|
||||
},
|
||||
'projects.severity': {
|
||||
'Meta': {'unique_together': "(('project', 'name'),)", 'object_name': 'Severity', 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'severities'"})
|
||||
},
|
||||
'projects.taskstatus': {
|
||||
'Meta': {'unique_together': "(('project', 'name'),)", 'object_name': 'TaskStatus', 'ordering': "['project', 'order', 'name']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'task_statuses'"})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus', 'ordering': "['project', 'order', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'us_statuses'"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'},
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'roles'", 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'})
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Permission']", 'related_name': "'roles'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'ordering': "['username']", 'object_name': 'User'},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}),
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'default': "'#669933'", 'blank': 'True', 'max_length': '9'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'default': "''", 'blank': 'True', 'max_length': '20'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'default': "''", 'blank': 'True', 'max_length': '20'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'related_name': "'user_set'", 'to': "orm['auth.Group']"}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'default': "'all_owned_projects'", 'max_length': '32'}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'related_name': "'user_set'", 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'default': 'None', 'blank': 'True', 'max_length': '200', 'null': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
},
|
||||
'userstories.rolepoints': {
|
||||
'Meta': {'unique_together': "(('user_story', 'role'),)", 'object_name': 'RolePoints'},
|
||||
'Meta': {'unique_together': "(('user_story', 'role'),)", 'object_name': 'RolePoints', 'ordering': "['user_story', 'role']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'points': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['projects.Points']"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['users.Role']"}),
|
||||
'user_story': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['userstories.UserStory']"})
|
||||
'points': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Points']", 'related_name': "'role_points'"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'role_points'"}),
|
||||
'user_story': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userstories.UserStory']", 'related_name': "'role_points'"})
|
||||
},
|
||||
'userstories.userstory': {
|
||||
'Meta': {'ordering': "['project', 'order']", 'unique_together': "(('ref', 'project'),)", 'object_name': 'UserStory'},
|
||||
'Meta': {'unique_together': "(('ref', 'project'),)", 'object_name': 'UserStory', 'ordering': "['project', 'order']"},
|
||||
'client_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'finish_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'finish_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'null': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'to': "orm['milestones.Milestone']", 'default': 'None', 'related_name': "'user_stories'", 'on_delete': 'models.SET_NULL'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'default': 'None', 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['milestones.Milestone']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'related_name': "'owned_user_stories'", 'to': "orm['users.User']", 'on_delete': 'models.SET_NULL'}),
|
||||
'points': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['userstories.RolePoints']", 'symmetrical': 'False', 'related_name': "'userstories'", 'to': "orm['projects.Points']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'to': "orm['projects.Project']"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'related_name': "'user_stories'", 'to': "orm['projects.UserStoryStatus']", 'on_delete': 'models.SET_NULL'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_user_stories'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['users.User']"}),
|
||||
'points': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'userstories'", 'to': "orm['projects.Points']", 'through': "orm['userstories.RolePoints']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'user_stories'"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'default': 'None', 'blank': 'True', 'db_index': 'True', 'null': 'True'}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'blank': 'True', 'on_delete': 'models.SET_NULL', 'null': 'True', 'to': "orm['projects.UserStoryStatus']"}),
|
||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'team_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'blank': 'True'}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'null': 'True', 'blank': 'True', 'symmetrical': 'False', 'related_name': "'watched_us'", 'to': "orm['users.User']"})
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'watched_us'", 'blank': 'True', 'null': 'True', 'to': "orm['users.User']"})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,162 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Deleting field 'UserStory.uuid'
|
||||
db.delete_column('userstories_userstory', 'uuid')
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'UserStory.uuid'
|
||||
db.add_column('userstories_userstory', 'uuid',
|
||||
self.gf('django.db.models.fields.CharField')(max_length=40, unique=True, default='', blank=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'db_table': "'django_content_type'", 'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'milestones.milestone': {
|
||||
'Meta': {'object_name': 'Milestone', 'unique_together': "(('name', 'project'),)", 'ordering': "['project', '-created_date']"},
|
||||
'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'disponibility': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': '0.0', 'blank': 'True'}),
|
||||
'estimated_finish': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'estimated_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'db_index': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'to': "orm['users.User']", 'blank': 'True', 'related_name': "'owned_milestones'"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'milestones'"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '250', 'blank': 'True'})
|
||||
},
|
||||
'projects.membership': {
|
||||
'Meta': {'object_name': 'Membership', 'unique_together': "(('user', 'project'),)", 'ordering': "['project', 'role', 'user']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'memberships'"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'memberships'"}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'memberships'"})
|
||||
},
|
||||
'projects.points': {
|
||||
'Meta': {'object_name': 'Points', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'points'"}),
|
||||
'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'})
|
||||
},
|
||||
'projects.project': {
|
||||
'Meta': {'object_name': 'Project', 'ordering': "['name']"},
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}),
|
||||
'members': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'projects'", 'to': "orm['users.User']", 'through': "orm['projects.Membership']"}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_projects'"}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '250', 'blank': 'True'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}),
|
||||
'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'})
|
||||
},
|
||||
'projects.userstorystatus': {
|
||||
'Meta': {'object_name': 'UserStoryStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'name']"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'us_statuses'"})
|
||||
},
|
||||
'users.role': {
|
||||
'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"},
|
||||
'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'roles'", 'to': "orm['auth.Permission']"}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '250', 'blank': 'True'})
|
||||
},
|
||||
'users.user': {
|
||||
'Meta': {'object_name': 'User', 'ordering': "['username']"},
|
||||
'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}),
|
||||
'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'notify_changes_by_me': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'notify_level': ('django.db.models.fields.CharField', [], {'max_length': '32', 'default': "'all_owned_projects'"}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'max_length': '500', 'blank': 'True'}),
|
||||
'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '200', 'default': 'None', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
},
|
||||
'userstories.rolepoints': {
|
||||
'Meta': {'object_name': 'RolePoints', 'unique_together': "(('user_story', 'role'),)"},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'points': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Points']", 'related_name': "'role_points'"}),
|
||||
'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'role_points'"}),
|
||||
'user_story': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userstories.UserStory']", 'related_name': "'role_points'"})
|
||||
},
|
||||
'userstories.userstory': {
|
||||
'Meta': {'object_name': 'UserStory', 'unique_together': "(('ref', 'project'),)", 'ordering': "['project', 'order']"},
|
||||
'client_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'finish_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'milestone': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'related_name': "'user_stories'", 'default': 'None', 'to': "orm['milestones.Milestone']", 'blank': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}),
|
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'to': "orm['users.User']", 'related_name': "'owned_user_stories'", 'blank': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'points': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'userstories'", 'to': "orm['projects.Points']", 'through': "orm['userstories.RolePoints']"}),
|
||||
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'user_stories'"}),
|
||||
'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True', 'default': 'None', 'db_index': 'True'}),
|
||||
'status': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'to': "orm['projects.UserStoryStatus']", 'related_name': "'user_stories'", 'blank': 'True', 'on_delete': 'models.SET_NULL'}),
|
||||
'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
|
||||
'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}),
|
||||
'team_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'null': 'True', 'symmetrical': 'False', 'related_name': "'watched_us'", 'blank': 'True', 'to': "orm['users.User']"})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['userstories']
|
|
@ -15,7 +15,7 @@ from . import create_userstory
|
|||
|
||||
|
||||
class UserStoriesTestCase(test.TestCase):
|
||||
fixtures = ["initial_role.json", "initial_site.json"]
|
||||
fixtures = ["initial_role.json", "initial_domains.json"]
|
||||
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1) # Project owner
|
||||
|
|
|
@ -14,7 +14,7 @@ from . import create_wiki_page
|
|||
|
||||
|
||||
class WikiPagesTestCase(test.TestCase):
|
||||
fixtures = ["initial_role.json", "initial_site.json"]
|
||||
fixtures = ["initial_role.json", "initial_domains.json"]
|
||||
|
||||
def setUp(self):
|
||||
self.user1 = create_user(1)
|
||||
|
|
|
@ -70,7 +70,9 @@ SITES_FRONT = {
|
|||
1: {"domain": "localhost:9001", "scheme": "http"},
|
||||
}
|
||||
|
||||
DOMAIN_ID = 1
|
||||
|
||||
# Only for django. Not used.
|
||||
SITE_ID = 1
|
||||
|
||||
#SESSION BACKEND
|
||||
|
@ -154,7 +156,7 @@ TEMPLATE_LOADERS = [
|
|||
|
||||
MIDDLEWARE_CLASSES = [
|
||||
'greenmine.base.middleware.CoorsMiddleware',
|
||||
'greenmine.base.middleware.SitesMiddleware',
|
||||
'greenmine.base.domains.middleware.DomainsMiddleware',
|
||||
|
||||
# Common middlewares
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
|
@ -192,6 +194,7 @@ INSTALLED_APPS = [
|
|||
'django.contrib.staticfiles',
|
||||
|
||||
'greenmine.base.users',
|
||||
'greenmine.base.domains',
|
||||
'greenmine.base.notifications',
|
||||
'greenmine.base.searches',
|
||||
'greenmine.base',
|
||||
|
|
|
@ -13,7 +13,7 @@ admin.autodiscover()
|
|||
urlpatterns = patterns('',
|
||||
url(r'^api/v1/', include(router.urls)),
|
||||
url(r'^api/v1/api-auth/', include('rest_framework.urls', namespace='rest_framework')),
|
||||
url(r'^api/v1/sites', "greenmine.base.apiviews.sitestatus"),
|
||||
url(r'^api/v1/sites', "greenmine.base.domains.api.domainstatus"),
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^grappelli/', include('grappelli.urls')),
|
||||
)
|
||||
|
|
|
@ -10,6 +10,8 @@ echo "-> Run syncdb"
|
|||
python manage.py syncdb --migrate --noinput --traceback
|
||||
# echo "-> Load initial Site"
|
||||
# python manage.py loaddata initial_site --traceback
|
||||
echo "-> Load initial domain"
|
||||
python manage.py loaddata initial_domains --traceback
|
||||
echo "-> Load initial user"
|
||||
python manage.py loaddata initial_user --traceback
|
||||
echo "-> Load initial roles"
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
alter table base_site rename to domains_domain;
|
||||
alter table base_sitemember rename to domains_domainmember;
|
||||
delete from south_migrationhistory;
|
Loading…
Reference in New Issue