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

Commit 789d9c4

Browse files
committed
Updates to peer instruction
1 parent 0ec7dc6 commit 789d9c4

File tree

3 files changed

+23
-9
lines changed

3 files changed

+23
-9
lines changed

controllers/peer.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,8 @@ def make_pairs():
248248
response.headers["content-type"] = "application/json"
249249
div_id = request.vars.div_id
250250
df = _get_n_answers(1, div_id, auth.user.course_name, request.vars.start_time)
251-
logger.debug("HELLO")
251+
group_size = request.vars.get("group_size", 2)
252+
logger.debug(f"STARTING to make pairs for {auth.user.course_name}")
252253
# answers = list(df.answer.unique())
253254
correct = df[df.correct == "T"][["sid", "answer"]]
254255
# answers.remove(correct.iloc[0].answer)
@@ -261,11 +262,9 @@ def make_pairs():
261262
correct_list.remove(auth.user.username)
262263
if auth.user.username in incorrect_list:
263264
incorrect_list.remove(auth.user.username)
264-
logger.debug("TTT")
265265
r = redis.from_url(os.environ.get("REDIS_URI", "redis://redis:6379/0"))
266-
267-
group_size = 2
268-
# TODO: make group_size configurable - from instructor peer page??
266+
logger.debug(f"Clearing partnerdb_{auth.user.course_name}")
267+
r.delete(f"partnerdb_{auth.user.course_name}")
269268

270269
done = False
271270
peeps = df.sid.to_list()
@@ -293,7 +292,9 @@ def make_pairs():
293292
for k, v in gdict.items():
294293
r.hset(f"partnerdb_{auth.user.course_name}", k, json.dumps(v))
295294

295+
logger.debug(f"DONE making pairs for {auth.user.course_name} {gdict}")
296296
_broadcast_peer_answers(correct, incorrect)
297+
logger.debug(f"DONE broadcasting pair information")
297298
return json.dumps("success")
298299

299300

@@ -309,7 +310,7 @@ def _broadcast_peer_answers(correct, incorrect):
309310
p1 = p1.decode("utf8")
310311
partner_list = json.loads(p2)
311312
for p2 in partner_list:
312-
ans = answers[p2]
313+
ans = answers.get(p2, None)
313314
# create a message to p1 to put into the publisher queue
314315
# it seems odd to not have a to field in the message...
315316
# but it is not necessary as the client can figure out how it is to

static/js/peer.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,11 @@ function warnAndStopVote(event) {
177177
async function makePartners() {
178178
let butt = document.querySelector("#makep");
179179
butt.classList.replace("btn-info", "btn-secondary");
180-
180+
let gs = document.getElementById("groupsize").value;
181181
let data = {
182182
div_id: currentQuestion,
183183
start_time: startTime, // set in dashboard.html when loaded
184+
group_size: gs,
184185
};
185186
let jsheaders = new Headers({
186187
"Content-type": "application/json; charset=utf-8",
@@ -192,7 +193,13 @@ async function makePartners() {
192193
body: JSON.stringify(data),
193194
});
194195
let resp = await fetch(request);
196+
if (!resp.ok) {
197+
alert(`Pairs not made ${resp.statusText}`);
198+
}
195199
let spec = await resp.json();
200+
if (spec !== "success") {
201+
alert(`Pairs not made! ${spec}`);
202+
}
196203
}
197204

198205
function startVote2(event) {

views/peer/dashboard.html

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,18 @@ <h2>Peer Instruction Dashboard</h2>
1515
<div class="col-md-6">
1616
<form action="/runestone/peer/dashboard" method="GET" onsubmit="return enableNext();">
1717
<input type="hidden" name="assignment_id" value={{=assignment_id}}>
18+
Group Size <select id="groupsize" name="groupsize">
19+
<option value="2">2</option>
20+
<option value="3">3</option>
21+
<option value="4">4</option>
22+
<option value="5">5</option>
23+
<option value="6">6</option>
24+
</select>
25+
<br/>
1826
<button type="button" id="vote1" class="btn btn-info" onclick="warnAndStopVote(event)">Stop Vote 1</button>
1927
<button type="button" id="makep" class="btn btn-info" onclick="makePartners(event)">Make Partners</button>
2028
<button type="button" id="vote2" class="btn btn-info" onclick="startVote2(event)">Start Vote 2</button>
2129
<button type="button" id="vote3" class="btn btn-info" onclick="warnAndStopVote(event)">Stop Vote 2</button>
22-
<button type="button" id="clearp" class="btn btn-info" onclick="clearPartners(event)">Clear
23-
Partners</button>
2430
<button type="submit" id="nextq" class="btn btn-info" name="next" value="Next">Next
2531
Question</button>
2632
<button type="submit" id="restart" class="btn btn-danger" name="next" value="Reset">Start Over</button>

0 commit comments

Comments
 (0)