Skip to content

Commit

Permalink
Basic data model (no overrides, no multitenant)
Browse files Browse the repository at this point in the history
  • Loading branch information
Bill DeRusha committed Mar 18, 2016
1 parent 946bd5a commit 8287fef
Show file tree
Hide file tree
Showing 5 changed files with 409 additions and 3 deletions.
14 changes: 13 additions & 1 deletion course_discovery/apps/core/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from django.utils.translation import ugettext_lazy as _

from course_discovery.apps.core.forms import UserThrottleRateForm
from course_discovery.apps.core.models import User, UserThrottleRate
from course_discovery.apps.core.models import Language, Locale, User, UserThrottleRate


class CustomUserAdmin(UserAdmin):
Expand All @@ -26,5 +26,17 @@ class UserThrottleRateAdmin(admin.ModelAdmin):
raw_id_fields = ('user',)


class LocaleAdmin(admin.ModelAdmin):
""" Admin configuration for the Locale model. """
list_display = ('iso_code', 'name', 'language')


class LanguageAdmin(admin.ModelAdmin):
""" Admin configuration for the Locale model. """
list_display = ('iso_code', 'name',)


admin.site.register(User, CustomUserAdmin)
admin.site.register(UserThrottleRate, UserThrottleRateAdmin)
admin.site.register(Locale, LocaleAdmin)
admin.site.register(Language, LanguageAdmin)
46 changes: 46 additions & 0 deletions course_discovery/apps/core/migrations/0004_language_locale.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models
import django_extensions.db.fields


class Migration(migrations.Migration):

dependencies = [
('core', '0003_auto_20160315_1910'),
]

operations = [
migrations.CreateModel(
name='Language',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('iso_code', models.CharField(max_length=2)),
('name', models.CharField(max_length=255)),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='Locale',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('iso_code', models.CharField(max_length=5)),
('name', models.CharField(max_length=255)),
('language', models.ForeignKey(to='core.Language')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
]
24 changes: 24 additions & 0 deletions course_discovery/apps/core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django_extensions.db.models import TimeStampedModel


class User(AbstractUser):
Expand Down Expand Up @@ -37,3 +38,26 @@ class UserThrottleRate(models.Model):
'The rate of requests to limit this user to. The format is specified by Django'
' Rest Framework (see http://www.django-rest-framework.org/api-guide/throttling/).')
)


class Language(TimeStampedModel):
"""
Language model.
"""
iso_code = models.CharField(max_length=2)
name = models.CharField(max_length=255)

def __str__(self):
return self.iso_code


class Locale(TimeStampedModel):
"""
Locale model.
"""
iso_code = models.CharField(max_length=5)
name = models.CharField(max_length=255)
language = models.ForeignKey(Language)

def __str__(self):
return self.iso_code
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models
import django_extensions.db.fields


class Migration(migrations.Migration):

dependencies = [
('core', '0004_language_locale'),
('course_metadata', '0002_course_name'),
]

operations = [
migrations.CreateModel(
name='CourseOrganization',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('type', models.CharField(max_length=100)),
('course', models.ForeignKey(related_name='relationship', to='course_metadata.Course')),
('organization', models.ForeignKey(related_name='relationship', to='course_metadata.Organization')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='CourseRunPerson',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('type', models.CharField(max_length=100)),
('index', models.IntegerField()),
('course_run', models.ForeignKey(related_name='relationship', to='course_metadata.CourseRun')),
('person', models.ForeignKey(related_name='relationship', to='course_metadata.Person')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='Effort',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('min', models.IntegerField()),
('max', models.IntegerField()),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='ExpectedLearningItem',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('value', models.CharField(max_length=255)),
('index', models.IntegerField()),
('course', models.ForeignKey(to='course_metadata.Course')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='Image',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('height', models.IntegerField()),
('width', models.IntegerField()),
('src', models.CharField(max_length=255)),
('description', models.CharField(max_length=255)),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='LevelType',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('name', models.CharField(max_length=255)),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='PacingType',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('name', models.CharField(max_length=255)),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='Prerequisite',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('name', models.CharField(max_length=255)),
('course', models.ManyToManyField(to='course_metadata.Course')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='Subject',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('name', models.CharField(max_length=255)),
('course', models.ManyToManyField(to='course_metadata.Course')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='SyllabusItem',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('index', models.IntegerField()),
('value', models.CharField(max_length=255)),
('course_run', models.ForeignKey(to='course_metadata.CourseRun')),
('parent', models.ForeignKey(blank=True, null=True, related_name='children', to='course_metadata.SyllabusItem')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='TranscriptLocale',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('course_run', models.ForeignKey(to='course_metadata.CourseRun')),
('locale', models.ForeignKey(to='core.Locale')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.CreateModel(
name='Video',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')),
('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')),
('type', models.CharField(max_length=255)),
('src', models.CharField(max_length=255)),
('description', models.CharField(max_length=255)),
('image', models.ForeignKey(to='course_metadata.Image')),
],
options={
'ordering': ('-modified', '-created'),
'abstract': False,
'get_latest_by': 'modified',
},
),
migrations.AddField(
model_name='course',
name='organizations',
field=models.ManyToManyField(through='course_metadata.CourseOrganization', to='course_metadata.Organization'),
),
migrations.AddField(
model_name='courserun',
name='people',
field=models.ManyToManyField(through='course_metadata.CourseRunPerson', to='course_metadata.Person'),
),
]
Loading

0 comments on commit 8287fef

Please sign in to comment.