Skip to content

Commit e315095

Browse files
committed
Added middleware that presents exceptions from AJAX requests as plain text. Added highlighting of selected timeframe and proper pagination for all subtables in the frontend, as well as rudimentary server-side ordering for daemons.
1 parent f1a44cc commit e315095

File tree

6 files changed

+237
-111
lines changed

6 files changed

+237
-111
lines changed

middleware.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
1+
import traceback
2+
from django.http import HttpResponseServerError
3+
from django.template.loader import render_to_string
24
from django.shortcuts import render_to_response
35

46
class StaffOnlyMiddleware(object):
57
def process_request(self, request):
68
if not request.path.startswith('/admin'):
79
if not request.user.is_staff:
810
return render_to_response('404.html')
11+
12+
class ErrorHandlingMiddleware(object):
13+
def process_exception(self, request, exception):
14+
if request.is_ajax():
15+
return HttpResponseServerError(traceback.format_exc(),
16+
content_type='text/plain')
17+
# else:
18+
# return HttpResponseServerError(render_to_string('500.html',
19+
# dict(message=traceback.format_exc())))

norc_utils/web.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def default(self, obj):
1616

1717
def paginate(request, data_set):
1818
try:
19-
per_page = int(request.GET.get('per_page', 20))
19+
per_page = int(request.GET.get('per_page', 15))
2020
except ValueError:
2121
per_page = 15
2222
paginator = Paginator(data_set, per_page)
@@ -28,9 +28,11 @@ def paginate(request, data_set):
2828
page_num = 1
2929
page = paginator.page(page_num)
3030
page_data = {
31-
'next': page.next_page_number() if page.has_next() else 0,
32-
'prev': page.previous_page_number() if page.has_previous() else 0,
31+
'nextPage': page.next_page_number() if page.has_next() else 0,
32+
'prevPage': page.previous_page_number() if page.has_previous() else 0,
3333
'start': page.start_index(),
3434
'end': page.end_index(),
35+
'current': page_num,
36+
'total': paginator.num_pages,
3537
}
3638
return page, page_data

static/css/norc_display.css renamed to static/css/status.css

Lines changed: 68 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ table {
2323
}
2424
table.L1 {
2525
font-family:"Trebuchet MS", "Futura", "Courier New";
26-
font-size:11px;
26+
/* font-size:11px;*/
2727
}
2828

2929
tr {
@@ -32,7 +32,7 @@ tr {
3232
}
3333
td {
3434
margin:0px;
35-
padding:0px 4px;
35+
padding:2px;
3636
}
3737
.inserted td {
3838
padding:0px;
@@ -48,6 +48,15 @@ table.L1 tr.hover {
4848
background-color:#EEFEEE;
4949
}
5050

51+
table.L1 ul.pagination {
52+
background-color:#92E6E7;
53+
}
54+
table.L1 ul.pagination li.clickable {
55+
background-color:#66A9BD;
56+
}
57+
table.L1 ul.pagination li.clickable:hover {
58+
background-color:#76B9CD;
59+
}
5160
table.L1 tr.expanded {
5261
background-color:#9FE8F3;
5362
}
@@ -64,6 +73,15 @@ table.L2 tr.hover {
6473
background-color:#EBFFFF;
6574
}
6675

76+
table.L2 ul.pagination {
77+
background-color:#FFCF57;
78+
}
79+
table.L2 ul.pagination li.clickable {
80+
background-color:#86652C;
81+
}
82+
table.L2 ul.pagination li.clickable:hover {
83+
background-color:#9C8038;
84+
}
6785
table.L2 tr.expanded {
6886
background-color:#FFDF57;
6987
}
@@ -80,17 +98,59 @@ table.L3 tr.hover {
8098
background-color:#FFFADD;
8199
}
82100

83-
.hover {
84-
cursor:pointer;
101+
102+
ul.pagination {
103+
background-color:#B8DBB9;
104+
display:block;
105+
list-style:none;
106+
margin:0px;
107+
padding:1px;
108+
text-align:center;
109+
}
110+
ul.pagination li {
111+
cursor:default;
112+
display:inline;
113+
margin:0px 20px;
114+
padding:1px 20px;
85115
}
86-
span.clickable {
87-
color:#888;
88-
text-decoration:underline;
116+
ul.pagination li.clickable {
117+
background-color:#658869;
118+
color:#FFFFFF;
89119
cursor:pointer;
90120
}
91-
.paging {
121+
ul.pagination li.clickable:hover {
122+
background-color:#7D9E80;
123+
}
124+
125+
/* Timeframe stuff. */
126+
ul.timeframe {
127+
background-color:#B8DBB9;
128+
cursor:default;
129+
display:inline-block;
130+
margin:0px;
131+
padding:0px;
92132
text-align:center;
93133
}
134+
ul.timeframe li {
135+
display:inline-block;
136+
margin:0px;
137+
padding:2px 5px;
138+
width:25px;
139+
}
140+
ul.timeframe li.clickable {
141+
cursor:pointer;
142+
}
143+
ul.timeframe li.clickable:hover {
144+
background-color:#7D9E80;
145+
color:#FFFFFF;
146+
}
147+
ul.timeframe li.selected {
148+
background-color:#658869;
149+
color:#FFFFFF;
150+
}
151+
.hover {
152+
cursor:pointer;
153+
}
94154
.status_good {
95155
background-color:#CF6;
96156
}

0 commit comments

Comments
 (0)