3
3
from datetime import datetime
4
4
5
5
from django .contrib import admin
6
- from django .conf import settings
7
6
from django .core .urlresolvers import reverse
8
7
from django .utils .translation import ugettext as _
9
8
from django import forms
10
9
from django .contrib .contenttypes .models import ContentType
11
10
12
11
from locking import LOCK_TIMEOUT , views
13
12
from locking .models import Lock
13
+ from locking import settings as _s
14
14
15
15
class LockableAdmin (admin .ModelAdmin ):
16
16
17
17
class Media :
18
- js = ( 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' ,
19
- 'static/locking/js/ jquery.url.packed. js' ,
20
- "/admin/ajax/variables.js" ,
21
- "static/locking/js/admin.locking.js?v=1" )
22
-
23
- css = { "all" : ( "static/locking/css/locking.css" , )
24
- }
18
+ js = (
19
+ 'http://ajax.googleapis.com/ajax/libs/ jquery/1.4.2/jquery.min. js' ,
20
+ _s . STATIC_URL + 'locking/js/jquery.url.packed.js' ,
21
+ _s . ADMIN_URL + "ajax/variables.js" ,
22
+ _s . STATIC_URL + "locking/js/admin.locking.js?v=1"
23
+ )
24
+ css = { "all" : ( _s . STATIC_URL + 'locking/css/locking.css' ,) }
25
25
26
26
def get_form (self , request , obj , * args , ** kwargs ):
27
27
form = super (LockableAdmin , self ).get_form (request , * args , ** kwargs )
@@ -33,16 +33,20 @@ def changelist_view(self, request, extra_context=None):
33
33
# we need the request objects in a few places where it's usually not present,
34
34
# so we're tacking it on to the LockableAdmin class
35
35
self .request = request
36
- return super (LockableAdmin , self ).changelist_view (request , extra_context )
36
+ return super (LockableAdmin , self ).changelist_view (request ,
37
+ extra_context )
37
38
38
39
def save_model (self , request , obj , form , change , * args , ** kwargs ):
39
40
40
- super (LockableAdmin , self ).save_model (request , obj , form , change , * args , ** kwargs )
41
+ super (LockableAdmin , self ).save_model (request , obj , form , change ,
42
+ * args , ** kwargs )
41
43
42
44
try :
43
45
# object creation doesn't need/have locking in place
44
46
content_type = ContentType .objects .get_for_model (obj )
45
- obj = Lock .objects .get (entry_id = obj .id , app = content_type .app_label , model = content_type .model )
47
+ obj = Lock .objects .get (entry_id = obj .id ,
48
+ app = content_type .app_label ,
49
+ model = content_type .model )
46
50
obj .unlock_for (request .user )
47
51
obj .save ()
48
52
except :
@@ -51,8 +55,9 @@ def save_model(self, request, obj, form, change, *args, **kwargs):
51
55
52
56
def get_lock_for_admin (self_obj , obj ):
53
57
'''
54
- returns the locking status along with a nice icon for the admin interface
55
- use in admin list display like so: list_display = ['title', 'get_lock_for_admin']
58
+ returns the locking status along with a nice icon for the admin
59
+ interface use in admin list display like so:
60
+ list_display = ['title', 'get_lock_for_admin']
56
61
'''
57
62
58
63
locked_by = ''
@@ -61,7 +66,9 @@ def get_lock_for_admin(self_obj, obj):
61
66
62
67
content_type = ContentType .objects .get_for_model (obj )
63
68
try :
64
- lock = Lock .objects .get (entry_id = obj .id , app = content_type .app_label , model = content_type .model )
69
+ lock = Lock .objects .get (entry_id = obj .id ,
70
+ app = content_type .app_label ,
71
+ model = content_type .model )
65
72
class_name = 'locked'
66
73
locked_by = lock .locked_by .username
67
74
output = str (obj .id )
@@ -74,17 +81,25 @@ def get_lock_for_admin(self_obj, obj):
74
81
locked_until = _ ("Still locked for %s more minute(s) by %s." ) \
75
82
% (minutes_remaining , lock .locked_by )
76
83
if self_obj .request .user == lock .locked_by :
77
- locked_until_self = _ ("You have a lock on this content for %s more minute(s)." ) \
78
- % (minutes_remaining )
79
- locked_until = '<img src="%sstatic/locking/img/page_edit.png" title="%s" />' \
80
- % (settings .MEDIA_URL , locked_until_self )
84
+ locked_until_self = _ (
85
+ "You have a lock on this content for %s more minute(s)."
86
+ ) % (minutes_remaining )
87
+ locked_until = '''
88
+ <img src="%slocking/img/page_edit.png"
89
+ title="%s" />''' % (_s .STATIC_URL , locked_until_self )
81
90
else :
82
- locked_until = _ ("Still locked for %s more minute(s) by %s." ) \
83
- % (minutes_remaining , lock .locked_by )
84
- locked_until = '<img src="%sstatic/locking/img/lock.png" title="%s" />' \
85
- % (settings .MEDIA_URL , locked_until )
86
- full_name = "%s %s" % (lock .locked_by .first_name ,lock .locked_by .last_name )
87
- return u'<a href="#" id=%s class="lock-status %s" title="Locked By: %s">%s%s</a>' % (output , class_name , full_name , locked_until , " " + locked_by )
91
+ locked_until = _ (
92
+ "Still locked for %s more minute(s) by %s."
93
+ ) % (minutes_remaining , lock .locked_by )
94
+ locked_until = '''
95
+ <img src="%slocking/img/lock.png" title="%s" />''' \
96
+ % (_s .STATIC_URL , locked_until )
97
+ full_name = "%s %s" % (
98
+ lock .locked_by .first_name ,lock .locked_by .last_name )
99
+ return u'''
100
+ <a href="#" id=%s class="lock-status %s"
101
+ title="Locked By: %s">%s%s</a>''' % (output , class_name ,
102
+ full_name , locked_until , " " + locked_by )
88
103
else :
89
104
return ''
90
105
0 commit comments