1
1
from django .core .urlresolvers import reverse_lazy
2
2
from django .views .generic .edit import UpdateView , CreateView , DeleteView
3
- from django .views .generic import ListView , View
3
+ from django .views .generic import ListView
4
4
from django .contrib .syndication .views import Feed
5
- from django .http import HttpResponseRedirect
6
- from django .shortcuts import render
7
5
from community .views import OwnedObject , FilterableList
8
6
from .models import Job , JobInactivated
9
7
from .forms import JobForm , JobInactivateForm
10
8
11
9
10
+ class JobActiveMixin (object ):
11
+ def get_queryset (self ):
12
+ """ Job must be active """
13
+ qs = super (JobActiveMixin , self ).get_queryset ()
14
+ return qs .actives ()
15
+
16
+
12
17
class JobsFeed (Feed ):
13
18
title = "Feed de ofertas laborales de Pyar"
14
19
link = reverse_lazy ("jobs_list_all" )
@@ -56,19 +61,19 @@ def form_valid(self, form):
56
61
return super (JobCreate , self ).form_valid (form )
57
62
58
63
59
- class JobList (ListView , FilterableList ):
64
+ class JobList (ListView , JobActiveMixin , FilterableList ):
60
65
model = Job
61
66
paginate_by = 20
62
67
63
68
64
- class JobUpdate (UpdateView , OwnedObject ):
69
+ class JobUpdate (UpdateView , JobActiveMixin , OwnedObject ):
65
70
66
71
"""Edit jobs that use Python."""
67
72
model = Job
68
73
form_class = JobForm
69
74
70
75
71
- class JobDelete (DeleteView , OwnedObject ):
76
+ class JobDelete (DeleteView , JobActiveMixin , OwnedObject ):
72
77
73
78
"""Delete a Job."""
74
79
model = Job
@@ -77,6 +82,21 @@ class JobDelete(DeleteView, OwnedObject):
77
82
78
83
class JobInactivate (CreateView ):
79
84
""" Inactivate Job by moderator """
80
- template_name = 'jobs/inactivate.html'
85
+
81
86
model = JobInactivated
87
+ template_name = 'jobs/job_inactivate_form.html'
82
88
form_class = JobInactivateForm
89
+
90
+ def form_valid (self , form ):
91
+ job = Job .objects .get (pk = self .kwargs ['pk' ])
92
+ form .instance .job = job
93
+
94
+ # -- inactivate job
95
+ job .is_active = False
96
+ job .save ()
97
+
98
+ # -- ¿send mail to job owner?
99
+ if form .cleaned_data ['send_email' ]:
100
+ print (job .company .owner .email )
101
+
102
+ return super (JobInactivate , self ).form_valid (form )
0 commit comments