Commit 918fef110d58723554d95a4651ee18a7403dc1da

Authored by Felipe Henrique de Almeida Bormann
1 parent 00313983

added error path for deleting category but still has template to do, subjects, c…

…ategories and markers are now available on website
categories/admin.py
1 1 from django.contrib import admin
  2 +from .models import Category
  3 +from .forms import CategoryForm
2 4  
3   -# Register your models here.
  5 +class CategoryAdmin(admin.ModelAdmin):
  6 + list_display = ['name', 'description', 'visible',
  7 + ]
  8 + search_fields = ['name']
  9 + form = CategoryForm
  10 +
  11 +admin.site.register(Category, CategoryAdmin)
4 12 \ No newline at end of file
... ...
categories/views.py
1   -from django.shortcuts import render
  1 +from django.shortcuts import render, get_object_or_404
2 2 from django.views.generic import ListView, CreateView, DeleteView
3 3 from .models import Category
4 4 from django.core.urlresolvers import reverse_lazy
5 5 from rolepermissions.verifications import has_role
6 6  
  7 +from django.http import HttpResponse
7 8 from django.utils.translation import ugettext_lazy as _
8 9  
9 10 from django.contrib.auth.mixins import LoginRequiredMixin
... ... @@ -11,6 +12,8 @@ from django.contrib.auth.mixins import LoginRequiredMixin
11 12 from rolepermissions.mixins import HasRoleMixin
12 13 from .forms import CategoryForm
13 14  
  15 +from subjects.models import Subject
  16 +
14 17 class IndexView(LoginRequiredMixin, ListView):
15 18  
16 19 login_url = reverse_lazy("users:login")
... ... @@ -83,15 +86,17 @@ class DeleteCategory(HasRoleMixin, DeleteView):
83 86 model = Category
84 87 template_name = 'categories/delete.html'
85 88  
86   - def dispatch(self, *args, **kwargs):
  89 +
  90 + def delete(self, request, *args, **kwargs):
87 91 category = get_object_or_404(Category, slug = self.kwargs.get('slug'))
88   - if len(category.subject_set) > 0:
89   - return self.handle_no_permission()
  92 + subjects = Subject.objects.filter(category = category)
  93 + print("aqui 3")
  94 + if len(subjects) > 0:
  95 + return HttpResponse(_('There are subjects attched to this category'))
  96 +
  97 + return super(DeleteCategory, self).delete(self, request, *args, **kwargs)
90 98  
91   - return super(DeleteCategory, self).dispatch(*args, **kwargs)
92   -
93 99 def get_success_url(self):
94   -
  100 +
95 101 return reverse_lazy('categories:index')
96 102  
97   -
... ...
subjects/admin.py
  1 +
1 2 from django.contrib import admin
  3 +from .models import Subject, Marker
  4 +from .forms import CreateSubjectForm, CreateMarkerForm
  5 +
  6 +class SubjectAdmin(admin.ModelAdmin):
  7 + list_display = ['name', 'description_brief', 'description', 'init_date', 'end_date', 'visible', 'professor',]
  8 + search_fields = ['name']
  9 + form = CreateSubjectForm
  10 +
  11 +
  12 +class MarkerAdmin(admin.ModelAdmin):
  13 + list_display = ['name']
  14 + search_fields = ['name']
  15 + form = CreateMarkerForm
  16 +
  17 +admin.site.register(Subject, SubjectAdmin)
  18 +admin.site.register(Marker, MarkerAdmin)
2 19  
3   -# Register your models here.
... ...
subjects/forms.py 0 → 100644
... ... @@ -0,0 +1,15 @@
  1 +from .models import Subject, Marker
  2 +from django import forms
  3 +class CreateSubjectForm(forms.ModelForm):
  4 + # TODO: Define form fields here
  5 + model = Subject
  6 +
  7 + fields = ('name', 'description_brief', 'description', 'init_date', 'end_date', 'visible', 'markers', 'professor',
  8 + 'students', 'category', )
  9 +
  10 +
  11 +class CreateMarkerForm(forms.ModelForm):
  12 + class Meta:
  13 + model = Marker
  14 + fields = ('name',)
  15 +
0 16 \ No newline at end of file
... ...
subjects/models.py
... ... @@ -10,6 +10,8 @@ from categories.models import Category
10 10  
11 11 class Marker(models.Model):
12 12 name = models.CharField( _("Name"), unique = True,max_length= 200)
  13 + def __str__(self):
  14 + return self.name
13 15  
14 16 class Subject(models.Model):
15 17  
... ... @@ -39,7 +41,7 @@ class Subject(models.Model):
39 41 verbose_name_plural = "Subjects"
40 42  
41 43 def __str__(self):
42   - pass
  44 + return self.name
43 45  
44 46  
45 47  
... ...