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 from django.contrib import admin 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 \ No newline at end of file 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 from django.views.generic import ListView, CreateView, DeleteView 2 from django.views.generic import ListView, CreateView, DeleteView
3 from .models import Category 3 from .models import Category
4 from django.core.urlresolvers import reverse_lazy 4 from django.core.urlresolvers import reverse_lazy
5 from rolepermissions.verifications import has_role 5 from rolepermissions.verifications import has_role
6 6
  7 +from django.http import HttpResponse
7 from django.utils.translation import ugettext_lazy as _ 8 from django.utils.translation import ugettext_lazy as _
8 9
9 from django.contrib.auth.mixins import LoginRequiredMixin 10 from django.contrib.auth.mixins import LoginRequiredMixin
@@ -11,6 +12,8 @@ from django.contrib.auth.mixins import LoginRequiredMixin @@ -11,6 +12,8 @@ from django.contrib.auth.mixins import LoginRequiredMixin
11 from rolepermissions.mixins import HasRoleMixin 12 from rolepermissions.mixins import HasRoleMixin
12 from .forms import CategoryForm 13 from .forms import CategoryForm
13 14
  15 +from subjects.models import Subject
  16 +
14 class IndexView(LoginRequiredMixin, ListView): 17 class IndexView(LoginRequiredMixin, ListView):
15 18
16 login_url = reverse_lazy("users:login") 19 login_url = reverse_lazy("users:login")
@@ -83,15 +86,17 @@ class DeleteCategory(HasRoleMixin, DeleteView): @@ -83,15 +86,17 @@ class DeleteCategory(HasRoleMixin, DeleteView):
83 model = Category 86 model = Category
84 template_name = 'categories/delete.html' 87 template_name = 'categories/delete.html'
85 88
86 - def dispatch(self, *args, **kwargs): 89 +
  90 + def delete(self, request, *args, **kwargs):
87 category = get_object_or_404(Category, slug = self.kwargs.get('slug')) 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 def get_success_url(self): 99 def get_success_url(self):
94 - 100 +
95 return reverse_lazy('categories:index') 101 return reverse_lazy('categories:index')
96 102
97 -  
subjects/admin.py
  1 +
1 from django.contrib import admin 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 @@ @@ -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 \ No newline at end of file 16 \ No newline at end of file
subjects/models.py
@@ -10,6 +10,8 @@ from categories.models import Category @@ -10,6 +10,8 @@ from categories.models import Category
10 10
11 class Marker(models.Model): 11 class Marker(models.Model):
12 name = models.CharField( _("Name"), unique = True,max_length= 200) 12 name = models.CharField( _("Name"), unique = True,max_length= 200)
  13 + def __str__(self):
  14 + return self.name
13 15
14 class Subject(models.Model): 16 class Subject(models.Model):
15 17
@@ -39,7 +41,7 @@ class Subject(models.Model): @@ -39,7 +41,7 @@ class Subject(models.Model):
39 verbose_name_plural = "Subjects" 41 verbose_name_plural = "Subjects"
40 42
41 def __str__(self): 43 def __str__(self):
42 - pass 44 + return self.name
43 45
44 46
45 47