Skip to content
This repository was archived by the owner on Jun 30, 2024. It is now read-only.

Commit ed89779

Browse files
committed
Merge branch 'peer_updates'
2 parents 4c6c8ed + bc2af41 commit ed89779

File tree

8 files changed

+746
-646
lines changed

8 files changed

+746
-646
lines changed

controllers/admin.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1954,6 +1954,7 @@ def get_assignment():
19541954
assignment_data["nofeedback"] = assignment_row.nofeedback
19551955
assignment_data["nopause"] = assignment_row.nopause
19561956
assignment_data["is_peer"] = assignment_row.is_peer
1957+
assignment_data["peer_async_visible"] = assignment_row.peer_async_visible
19571958

19581959
# Still need to get:
19591960
# -- timed properties of assignment
@@ -2058,6 +2059,7 @@ def save_assignment():
20582059
nofeedback = request.vars["nofeedback"]
20592060
nopause = request.vars["nopause"]
20602061
is_peer = request.vars["is_peer"]
2062+
peer_async_visible = request.vars["peer_async_visible"]
20612063
try:
20622064
d_str = request.vars["due"]
20632065
format_str = "%Y/%m/%d %H:%M"
@@ -2080,6 +2082,7 @@ def save_assignment():
20802082
nopause=nopause,
20812083
is_peer=is_peer,
20822084
current_index=0,
2085+
peer_async_visible=peer_async_visible,
20832086
)
20842087
return json.dumps({request.vars["name"]: assignment_id, "status": "success"})
20852088
except Exception as ex:

controllers/peer.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,19 @@ def dashboard():
103103
)
104104

105105

106+
def extra():
107+
assignment_id = request.vars.assignment_id
108+
current_question = _get_current_question(assignment_id, False)
109+
110+
return dict(
111+
course_id=auth.user.course_name,
112+
course=get_course_row(db.courses.ALL),
113+
current_question=current_question,
114+
assignment_id=assignment_id,
115+
is_instructor=True,
116+
)
117+
118+
106119
def _get_current_question(assignment_id, get_next):
107120

108121
assignment = db(db.assignments.id == assignment_id).select().first()
@@ -265,6 +278,21 @@ def num_answers():
265278
return json.dumps({"count": acount, "mess_count": mess_count})
266279

267280

281+
def percent_correct():
282+
div_id = request.vars.div_id
283+
start_time = request.vars.start_time
284+
course_name = request.vars.course_name
285+
df = _get_lastn_answers(1, div_id, course_name, start_time)
286+
logger.debug(f"Data Frame is {df}")
287+
tot = len(df)
288+
logger.debug(f"num rows = {tot}")
289+
corr = len(df[df.correct == "T"])
290+
if corr == 0:
291+
return json.dumps({"pct_correct": "No Correct Answers"})
292+
else:
293+
return json.dumps({"pct_correct": tot / corr * 100})
294+
295+
268296
#
269297
# Student Facing pages
270298
#
@@ -559,17 +587,18 @@ def _get_user_answer(div_id, s):
559587

560588

561589
def _get_user_messages(user, div_id, course_name):
590+
# this gets both sides of the conversation -- thus the | in the query below.
562591
messages = db(
563592
(db.useinfo.event == "sendmessage")
564-
& (db.useinfo.sid == user)
593+
& ((db.useinfo.sid == user) | (db.useinfo.act.like(f"to:{user}%")))
565594
& (db.useinfo.div_id == div_id)
566595
& (db.useinfo.course_id == course_name)
567596
).select(orderby=db.useinfo.id)
568597
user = messages[0].sid
569598
mess = "<ul>"
570599
for row in messages:
571600
mpart = row.act.split(":")[2]
572-
mess += f"<li>{mpart}</li>"
601+
mess += f"<li>{row.sid} said: {mpart}</li>"
573602
mess += "</ul>"
574603

575604
return mess

models/grouped_assignments.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
Field("from_source", "boolean", default=False),
2828
Field("nofeedback", "boolean"),
2929
Field("nopause", "boolean"),
30+
Field("peer_async_visible", "boolean", default=False),
3031
format="%(name)s",
3132
migrate=bookserver_owned("assignments"),
3233
)

static/js/admin.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,6 +1364,11 @@ function update_assignment(form) {
13641364
} else {
13651365
data.is_peer = "F";
13661366
}
1367+
if (form.peer_async_visible.checked) {
1368+
data.peer_async_visible = "T"
1369+
} else {
1370+
data.peer_async_visible = "F"
1371+
}
13671372
data.timelimit = form.timelimit.value;
13681373
data.description = form.description.value;
13691374
data.assignment_id = getAssignmentId();
@@ -1426,6 +1431,7 @@ function assignmentInfo() {
14261431
$("#nopause").val(assignmentData.nopause);
14271432
$("#nofeedback").val(assignmentData.nofeedback);
14281433
$("#assign_is_peer").val(assignmentData.is_peer);
1434+
$("#peer_async_visible").val(assignmentData.peer_async_visible);
14291435
if (assignmentData.visible === true) {
14301436
$("#assign_visible").prop("checked", true);
14311437
} else {
@@ -1451,6 +1457,11 @@ function assignmentInfo() {
14511457
} else {
14521458
$("#assign_is_peer").prop("checked", false);
14531459
}
1460+
if (assignmentData.peer_async_visible === true) {
1461+
$("#peer_async_visible").prop("checked", true);
1462+
} else {
1463+
$("#peer_async_visible").prop("checked", false);
1464+
}
14541465
if (assignmentData.is_timed === true) {
14551466
$("#assign_is_timed").prop("checked", true);
14561467
// add simulator button

0 commit comments

Comments
 (0)