Commit 822db64d by Bessie Steinberg

Add Journal Bundle model

parent 06e0d2f5
from django.contrib import admin
from .models import JournalBundle, Journal
# Register your models here.
@admin.register(Journal)
class JournalAdmin(admin.ModelAdmin):
list_display = (
'title',
'partner',
'uuid',
)
raw_id_fields = (
'partner',
)
@admin.register(JournalBundle)
class JournalBundleAdmin(admin.ModelAdmin):
list_display = (
'id',
'uuid',
'title'
)
raw_id_fields = (
'journals',
'courses'
)
\ No newline at end of file
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-03-22 18:23
from __future__ import unicode_literals
from django.db import migrations, models
import django_extensions.db.fields
import uuid
class Migration(migrations.Migration):
dependencies = [
('course_metadata', '0079_enable_program_default_true'),
('journal', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='JournalBundle',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('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')),
('uuid', models.UUIDField(default=uuid.uuid4, editable=False, verbose_name='UUID')),
('title', models.CharField(help_text='The user-facing display title for this Journal Bundle', max_length=255, unique=True)),
('courses', models.ManyToManyField(blank=True, to='course_metadata.Course')),
],
options={
'abstract': False,
'ordering': ('-modified', '-created'),
'get_latest_by': 'modified',
},
),
migrations.RemoveField(
model_name='journal',
name='key',
),
migrations.AlterField(
model_name='journal',
name='title',
field=models.CharField(blank=True, default=None, max_length=255, null=True),
),
migrations.AddField(
model_name='journalbundle',
name='journals',
field=models.ManyToManyField(blank=True, to='journal.Journal'),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-03-22 18:27
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('core', '0007_auto_20171004_1133'),
('journal', '0002_auto_20180322_1823'),
]
operations = [
migrations.AlterModelOptions(
name='journal',
options={},
),
migrations.AlterUniqueTogether(
name='journal',
unique_together=set([('partner', 'uuid')]),
),
]
from django.db import models
from django_extensions.db.models import TimeStampedModel
from django.utils.translation import ugettext_lazy as _
from uuid import uuid4
from course_discovery.apps.core.models import Currency, Partner
from course_discovery.apps.course_metadata.models import Course
CHARFIELD_MAX_LENGTH = 255
class Journal(TimeStampedModel):
"""" Journal model """
......@@ -16,12 +19,11 @@ class Journal(TimeStampedModel):
uuid = models.UUIDField(
default=uuid4,
editable=False,
verbose_name='UUID',
verbose_name=_('UUID'),
)
partner = models.ForeignKey(Partner)
key = models.CharField(max_length=255)
title = models.CharField(
max_length=225,
max_length=CHARFIELD_MAX_LENGTH,
default=None,
null=True,
blank=True
......@@ -31,8 +33,26 @@ class Journal(TimeStampedModel):
sku = models.CharField(max_length=128, null=True, blank=True)
expires = models.DateTimeField(null=True, blank=True)
class Meta:
unique_together = (
('partner', 'uuid'),
)
def __str__(self):
return '{key}: {title}'.format(
key=self.key,
title=self.title
)
\ No newline at end of file
return self.title
class JournalBundle(TimeStampedModel):
""" Journal Bundle Model """
uuid = models.UUIDField(
default=uuid4,
editable=False,
verbose_name=_('UUID')
)
title = models.CharField(
help_text=_('The user-facing display title for this Journal Bundle'),
max_length=CHARFIELD_MAX_LENGTH,
unique=True
)
journals = models.ManyToManyField(Journal, blank=True)
courses = models.ManyToManyField(Course, blank=True)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment