diff --git a/apps/course/migrations/0037_auto_20180507_1422.py b/apps/course/migrations/0037_auto_20180507_1422.py new file mode 100644 index 00000000..3d542550 --- /dev/null +++ b/apps/course/migrations/0037_auto_20180507_1422.py @@ -0,0 +1,19 @@ +# Generated by Django 2.0.4 on 2018-05-07 14:22 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('course', '0036_auto_20180426_1256'), + ] + + operations = [ + migrations.AlterField( + model_name='course', + name='category', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='courses', to='course.Category'), + ), + ] diff --git a/apps/course/models.py b/apps/course/models.py index 14d77132..54384890 100644 --- a/apps/course/models.py +++ b/apps/course/models.py @@ -77,7 +77,7 @@ class Course(BaseModel, DeactivatedMixin): 'Отложенный запуск курса', help_text='Заполнить если курс отложенный', null=True, blank=True, validators=[deferred_start_at_validator], ) - category = models.ForeignKey('Category', null=True, blank=True, on_delete=models.PROTECT) + category = models.ForeignKey('Category', null=True, blank=True, on_delete=models.PROTECT, related_name='courses') duration = models.IntegerField('Продолжительность курса', default=0) is_featured = models.BooleanField(default=False) status = models.PositiveSmallIntegerField( diff --git a/apps/course/templatetags/lilcity_category.py b/apps/course/templatetags/lilcity_category.py index bf6b1af8..2bed374e 100644 --- a/apps/course/templatetags/lilcity_category.py +++ b/apps/course/templatetags/lilcity_category.py @@ -1,6 +1,6 @@ from django import template -from ..models import Category +from ..models import Category, Course register = template.Library() @@ -8,7 +8,7 @@ register = template.Library() @register.inclusion_tag('course/inclusion/category_items.html') def category_items(category=None): return { - "category_items": Category.objects.all(), + 'category_items': Category.objects.filter(courses__status=Course.PUBLISHED).exclude(courses=None), 'category': category, } @@ -16,6 +16,6 @@ def category_items(category=None): @register.inclusion_tag('course/inclusion/category_menu_items.html') def category_menu_items(category=None): return { - "category_items": Category.objects.all(), + 'category_items': Category.objects.filter(courses__status=Course.PUBLISHED).exclude(courses=None), 'category': category, }