Commit 918fef110d58723554d95a4651ee18a7403dc1da
1 parent
00313983
Exists in
master
and in
3 other branches
added error path for deleting category but still has template to do, subjects, c…
…ategories and markers are now available on website
Showing
5 changed files
with
57 additions
and
11 deletions
Show diff stats
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. |
@@ -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 |