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

Commit cbfe623

Browse files
committed
Fix peer ratings for larger groups
* Bug fix on students that do not answer
1 parent 55d1fd2 commit cbfe623

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed

controllers/peer.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ def _get_n_answers(num_answer, div_id, course_name, start_time):
137137
df = df.dropna(subset=["answer"])
138138
logger.debug(df.head())
139139
# FIXME: this breaks for multiple answer mchoice!
140+
df = df[df.answer != ""]
140141
df["answer"] = df.answer.astype("int64")
141142

142143
return df
@@ -248,7 +249,7 @@ def make_pairs():
248249
response.headers["content-type"] = "application/json"
249250
div_id = request.vars.div_id
250251
df = _get_n_answers(1, div_id, auth.user.course_name, request.vars.start_time)
251-
group_size = request.vars.get("group_size", 2)
252+
group_size = int(request.vars.get("group_size", 2))
252253
logger.debug(f"STARTING to make pairs for {auth.user.course_name}")
253254
# answers = list(df.answer.unique())
254255
correct = df[df.correct == "T"][["sid", "answer"]]
@@ -345,10 +346,10 @@ def publish_message():
345346
def log_peer_rating():
346347
response.headers["content-type"] = "application/json"
347348
current_question = request.vars.div_id
349+
peer_sid = request.vars.peer_id
348350
r = redis.from_url(os.environ.get("REDIS_URI", "redis://redis:6379/0"))
349-
peer_sid = r.hget(f"partnerdb_{auth.user.course_name}", auth.user.username)
351+
retmess = "Error: no peer to rate"
350352
if peer_sid:
351-
peer_sid = peer_sid.decode("utf8")
352353
db.useinfo.insert(
353354
course_id=auth.user.course_name,
354355
sid=auth.user.username,
@@ -357,6 +358,6 @@ def log_peer_rating():
357358
act=f"{peer_sid}:{request.vars.rating}",
358359
timestamp=datetime.datetime.utcnow(),
359360
)
360-
return json.dumps("success")
361+
retmess = "success"
361362

362-
return json.dumps("Error: no peer to rate")
363+
return json.dumps(retmess)

static/js/peer.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ function connect(event) {
8686
let currAnswer = String.fromCharCode(ordA + parseInt(mess.answer));
8787
newpeer.innerHTML = `Your partner, ${mess.from}, answered ${currAnswer}`;
8888
peerlist.appendChild(newpeer);
89+
let peersel = document.getElementById("peersel");
90+
let peeropt = document.createElement("option");
91+
peeropt.value = mess.from;
92+
peeropt.innerHTML = mess.from;
93+
peersel.appendChild(peeropt);
8994
break;
9095
default:
9196
console.log("unknown control message");
@@ -269,10 +274,12 @@ async function ratePeer(radio) {
269274
"Content-type": "application/json; charset=utf-8",
270275
Accept: "application/json",
271276
});
277+
let peerToRate = document.getElementById("peersel").value;
272278
let eventInfo = {
273279
sid: eBookConfig.username,
274280
div_id: currentQuestion,
275281
event: "ratepeer",
282+
peer_id: peerToRate,
276283
course_id: eBookConfig.course,
277284
rating: radio.value,
278285
};

views/peer/dashboard.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ <h2>Peer Instruction Dashboard</h2>
2424
</select>
2525
<br/>
2626
<button type="button" id="vote1" class="btn btn-info" onclick="warnAndStopVote(event)">Stop Vote 1</button>
27-
<button type="button" id="makep" class="btn btn-info" onclick="makePartners(event)">Make Partners</button>
27+
<button type="button" id="makep" class="btn btn-info" onclick="makePartners(event)">Enable Discussion</button>
2828
<button type="button" id="vote2" class="btn btn-info" onclick="startVote2(event)">Start Vote 2</button>
2929
<button type="button" id="vote3" class="btn btn-info" onclick="warnAndStopVote(event)">Stop Vote 2</button>
3030
<button type="submit" id="nextq" class="btn btn-info" name="next" value="Next">Next

views/peer/peer_question.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ <h2>Peer Instruction Question</h2>
4141
</div>
4242
<form>
4343
<div class="form-group">
44-
Please provide a confidential rating of your peer's explanation<br />
44+
Please provide a confidential rating of <select id="peersel" name="peercel"></select>
45+
peer's explanation<br />
4546
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="poor"
4647
onclick="ratePeer(this)">
4748
<label class="form-check-label" for="inlineRadio1">Poor</label>

0 commit comments

Comments
 (0)