diff --git a/courses/admin.py b/courses/admin.py index 394f700..874ccff 100644 --- a/courses/admin.py +++ b/courses/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from .models import Category, Course, Module +from .models import Category, Course, Subject,Topic class CategoryAdmin(admin.ModelAdmin): list_display = ['name', 'slug'] @@ -10,10 +10,15 @@ class CourseAdmin(admin.ModelAdmin): list_display = ['name', 'slug'] search_fields = ['name', 'slug'] -class ModuleAdmin(admin.ModelAdmin): +class SubjectAdmin(admin.ModelAdmin): + list_display = ['name', 'slug'] + search_fields = ['name', 'slug'] + +class TopicAdmin(admin.ModelAdmin): list_display = ['name', 'slug'] search_fields = ['name', 'slug'] admin.site.register(Category, CategoryAdmin) admin.site.register(Course, CourseAdmin) -admin.site.register(Module, ModuleAdmin) \ No newline at end of file +admin.site.register(Subject, SubjectAdmin) +admin.site.register(Topic, TopicAdmin) diff --git a/courses/forms.py b/courses/forms.py index a037f22..e9955c7 100644 --- a/courses/forms.py +++ b/courses/forms.py @@ -1,6 +1,6 @@ from django import forms from django.utils.translation import ugettext_lazy as _ -from .models import Category, Course, Subject +from .models import Category, Course, Subject, Topic class CategoryForm(forms.ModelForm): @@ -64,3 +64,17 @@ class SubjectForm(forms.ModelForm): 'description': _("Subjects's description"), 'visible': _('Is the subject visible?'), } + +class TopicForm(forms.ModelForm): + + class Meta: + model = Topic + fields = ('name', 'description',) + labels = { + 'name': _('Name'), + 'description': _('Description'), + } + help_texts = { + 'name': _("Topic's name"), + 'description': _("Topic's description"), + } diff --git a/courses/migrations/0007_topic.py b/courses/migrations/0007_topic.py new file mode 100644 index 0000000..caa2dcb --- /dev/null +++ b/courses/migrations/0007_topic.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10 on 2016-09-08 02:51 +from __future__ import unicode_literals + +import autoslug.fields +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('courses', '0006_auto_20160907_2259'), + ] + + operations = [ + migrations.CreateModel( + name='Topic', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, verbose_name='Name')), + ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), + ('description', models.TextField(blank=True, verbose_name='Description')), + ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), + ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), + ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='topics', to='courses.Subject', verbose_name='Subject')), + ], + options={ + 'verbose_name': 'Topic', + 'verbose_name_plural': 'Topics', + }, + ), + ] diff --git a/courses/models.py b/courses/models.py index 0c17f2d..e8d662f 100644 --- a/courses/models.py +++ b/courses/models.py @@ -50,7 +50,7 @@ class Subject(models.Model): update_date = models.DateTimeField(_('Date of last update'), auto_now=True) course = models.ForeignKey(Course, verbose_name = _('Course'), related_name="subjects") - + class Meta: verbose_name = _('Subject') @@ -58,3 +58,21 @@ class Subject(models.Model): def __str__(self): return self.name + +class Topic(models.Model): + + name = models.CharField(_('Name'), max_length = 100) + slug = AutoSlugField(_("Slug"),populate_from='name',unique=True) + description = models.TextField(_('Description'), blank = True) + create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True) + update_date = models.DateTimeField(_('Date of last update'), auto_now=True) + subject = models.ForeignKey(Subject, verbose_name = _('Subject'), related_name="topics") + + + class Meta: + + verbose_name = _('Topic') + verbose_name_plural = _('Topics') + + def __str__(self): + return self.name -- libgit2 0.21.2