Commit ff839086b58e21c76a11ac63c4c3e67c1d20de8e
1 parent
b33feeb3
Exists in
master
and in
5 other branches
Form de topic #31
Showing
4 changed files
with
75 additions
and
5 deletions
Show diff stats
courses/admin.py
1 | 1 | from django.contrib import admin |
2 | 2 | |
3 | -from .models import Category, Course, Module | |
3 | +from .models import Category, Course, Subject,Topic | |
4 | 4 | |
5 | 5 | class CategoryAdmin(admin.ModelAdmin): |
6 | 6 | list_display = ['name', 'slug'] |
... | ... | @@ -10,10 +10,15 @@ class CourseAdmin(admin.ModelAdmin): |
10 | 10 | list_display = ['name', 'slug'] |
11 | 11 | search_fields = ['name', 'slug'] |
12 | 12 | |
13 | -class ModuleAdmin(admin.ModelAdmin): | |
13 | +class SubjectAdmin(admin.ModelAdmin): | |
14 | + list_display = ['name', 'slug'] | |
15 | + search_fields = ['name', 'slug'] | |
16 | + | |
17 | +class TopicAdmin(admin.ModelAdmin): | |
14 | 18 | list_display = ['name', 'slug'] |
15 | 19 | search_fields = ['name', 'slug'] |
16 | 20 | |
17 | 21 | admin.site.register(Category, CategoryAdmin) |
18 | 22 | admin.site.register(Course, CourseAdmin) |
19 | -admin.site.register(Module, ModuleAdmin) | |
20 | 23 | \ No newline at end of file |
24 | +admin.site.register(Subject, SubjectAdmin) | |
25 | +admin.site.register(Topic, TopicAdmin) | ... | ... |
courses/forms.py
1 | 1 | from django import forms |
2 | 2 | from django.utils.translation import ugettext_lazy as _ |
3 | -from .models import Category, Course, Subject | |
3 | +from .models import Category, Course, Subject, Topic | |
4 | 4 | |
5 | 5 | class CategoryForm(forms.ModelForm): |
6 | 6 | |
... | ... | @@ -64,3 +64,17 @@ class SubjectForm(forms.ModelForm): |
64 | 64 | 'description': _("Subjects's description"), |
65 | 65 | 'visible': _('Is the subject visible?'), |
66 | 66 | } |
67 | + | |
68 | +class TopicForm(forms.ModelForm): | |
69 | + | |
70 | + class Meta: | |
71 | + model = Topic | |
72 | + fields = ('name', 'description',) | |
73 | + labels = { | |
74 | + 'name': _('Name'), | |
75 | + 'description': _('Description'), | |
76 | + } | |
77 | + help_texts = { | |
78 | + 'name': _("Topic's name"), | |
79 | + 'description': _("Topic's description"), | |
80 | + } | ... | ... |
... | ... | @@ -0,0 +1,33 @@ |
1 | +# -*- coding: utf-8 -*- | |
2 | +# Generated by Django 1.10 on 2016-09-08 02:51 | |
3 | +from __future__ import unicode_literals | |
4 | + | |
5 | +import autoslug.fields | |
6 | +from django.db import migrations, models | |
7 | +import django.db.models.deletion | |
8 | + | |
9 | + | |
10 | +class Migration(migrations.Migration): | |
11 | + | |
12 | + dependencies = [ | |
13 | + ('courses', '0006_auto_20160907_2259'), | |
14 | + ] | |
15 | + | |
16 | + operations = [ | |
17 | + migrations.CreateModel( | |
18 | + name='Topic', | |
19 | + fields=[ | |
20 | + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | |
21 | + ('name', models.CharField(max_length=100, verbose_name='Name')), | |
22 | + ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), | |
23 | + ('description', models.TextField(blank=True, verbose_name='Description')), | |
24 | + ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), | |
25 | + ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), | |
26 | + ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='topics', to='courses.Subject', verbose_name='Subject')), | |
27 | + ], | |
28 | + options={ | |
29 | + 'verbose_name': 'Topic', | |
30 | + 'verbose_name_plural': 'Topics', | |
31 | + }, | |
32 | + ), | |
33 | + ] | ... | ... |
courses/models.py
... | ... | @@ -50,7 +50,7 @@ class Subject(models.Model): |
50 | 50 | update_date = models.DateTimeField(_('Date of last update'), auto_now=True) |
51 | 51 | course = models.ForeignKey(Course, verbose_name = _('Course'), related_name="subjects") |
52 | 52 | |
53 | - | |
53 | + | |
54 | 54 | class Meta: |
55 | 55 | |
56 | 56 | verbose_name = _('Subject') |
... | ... | @@ -58,3 +58,21 @@ class Subject(models.Model): |
58 | 58 | |
59 | 59 | def __str__(self): |
60 | 60 | return self.name |
61 | + | |
62 | +class Topic(models.Model): | |
63 | + | |
64 | + name = models.CharField(_('Name'), max_length = 100) | |
65 | + slug = AutoSlugField(_("Slug"),populate_from='name',unique=True) | |
66 | + description = models.TextField(_('Description'), blank = True) | |
67 | + create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True) | |
68 | + update_date = models.DateTimeField(_('Date of last update'), auto_now=True) | |
69 | + subject = models.ForeignKey(Subject, verbose_name = _('Subject'), related_name="topics") | |
70 | + | |
71 | + | |
72 | + class Meta: | |
73 | + | |
74 | + verbose_name = _('Topic') | |
75 | + verbose_name_plural = _('Topics') | |
76 | + | |
77 | + def __str__(self): | |
78 | + return self.name | ... | ... |