diff --git a/categories/admin.py b/categories/admin.py index 8c38f3f..b52586f 100644 --- a/categories/admin.py +++ b/categories/admin.py @@ -1,3 +1,11 @@ from django.contrib import admin +from .models import Category +from .forms import CategoryForm -# Register your models here. +class CategoryAdmin(admin.ModelAdmin): + list_display = ['name', 'description', 'visible', + ] + search_fields = ['name'] + form = CategoryForm + +admin.site.register(Category, CategoryAdmin) \ No newline at end of file diff --git a/categories/views.py b/categories/views.py index b659b4d..f2694fa 100644 --- a/categories/views.py +++ b/categories/views.py @@ -1,9 +1,10 @@ -from django.shortcuts import render +from django.shortcuts import render, get_object_or_404 from django.views.generic import ListView, CreateView, DeleteView from .models import Category from django.core.urlresolvers import reverse_lazy from rolepermissions.verifications import has_role +from django.http import HttpResponse from django.utils.translation import ugettext_lazy as _ from django.contrib.auth.mixins import LoginRequiredMixin @@ -11,6 +12,8 @@ from django.contrib.auth.mixins import LoginRequiredMixin from rolepermissions.mixins import HasRoleMixin from .forms import CategoryForm +from subjects.models import Subject + class IndexView(LoginRequiredMixin, ListView): login_url = reverse_lazy("users:login") @@ -83,15 +86,17 @@ class DeleteCategory(HasRoleMixin, DeleteView): model = Category template_name = 'categories/delete.html' - def dispatch(self, *args, **kwargs): + + def delete(self, request, *args, **kwargs): category = get_object_or_404(Category, slug = self.kwargs.get('slug')) - if len(category.subject_set) > 0: - return self.handle_no_permission() + subjects = Subject.objects.filter(category = category) + print("aqui 3") + if len(subjects) > 0: + return HttpResponse(_('There are subjects attched to this category')) + + return super(DeleteCategory, self).delete(self, request, *args, **kwargs) - return super(DeleteCategory, self).dispatch(*args, **kwargs) - def get_success_url(self): - + return reverse_lazy('categories:index') - diff --git a/subjects/admin.py b/subjects/admin.py index 8c38f3f..2b7544b 100644 --- a/subjects/admin.py +++ b/subjects/admin.py @@ -1,3 +1,19 @@ + from django.contrib import admin +from .models import Subject, Marker +from .forms import CreateSubjectForm, CreateMarkerForm + +class SubjectAdmin(admin.ModelAdmin): + list_display = ['name', 'description_brief', 'description', 'init_date', 'end_date', 'visible', 'professor',] + search_fields = ['name'] + form = CreateSubjectForm + + +class MarkerAdmin(admin.ModelAdmin): + list_display = ['name'] + search_fields = ['name'] + form = CreateMarkerForm + +admin.site.register(Subject, SubjectAdmin) +admin.site.register(Marker, MarkerAdmin) -# Register your models here. diff --git a/subjects/forms.py b/subjects/forms.py new file mode 100644 index 0000000..ea9b89c --- /dev/null +++ b/subjects/forms.py @@ -0,0 +1,15 @@ +from .models import Subject, Marker +from django import forms +class CreateSubjectForm(forms.ModelForm): + # TODO: Define form fields here + model = Subject + + fields = ('name', 'description_brief', 'description', 'init_date', 'end_date', 'visible', 'markers', 'professor', + 'students', 'category', ) + + +class CreateMarkerForm(forms.ModelForm): + class Meta: + model = Marker + fields = ('name',) + \ No newline at end of file diff --git a/subjects/models.py b/subjects/models.py index e60f8e5..18accff 100644 --- a/subjects/models.py +++ b/subjects/models.py @@ -10,6 +10,8 @@ from categories.models import Category class Marker(models.Model): name = models.CharField( _("Name"), unique = True,max_length= 200) + def __str__(self): + return self.name class Subject(models.Model): @@ -39,7 +41,7 @@ class Subject(models.Model): verbose_name_plural = "Subjects" def __str__(self): - pass + return self.name -- libgit2 0.21.2