18
0

Merge remote-tracking branch 'flask_repo/main' into flask

This commit is contained in:
2024-09-28 12:38:06 -07:00
4 changed files with 42 additions and 18 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
*~ *~
__pycache__ __pycache__
*.pyc

View File

@@ -19,6 +19,7 @@ def response_quality():
student_name = request.form['studentName'] student_name = request.form['studentName']
button_value = request.form['buttonValue'] button_value = request.form['buttonValue']
course = request.form['course'] course = request.form['course']
print(button_value)
fn = f'../assessments/{course}/{course}.csv' fn = f'../assessments/{course}/{course}.csv'
@@ -28,24 +29,35 @@ def response_quality():
else: else:
answered = 'T' answered = 'T'
if button_value != 'get_next':
write_to_file(student_name, fn, write_to_file(student_name, fn,
answered=answered, answered=answered,
assessment=button_value) assessment=button_value)
student = coldcall_student(course)
return 'Received feedback from ' + student_name + ': ' + button_value print(f'Sending {student}')
return student
@app.route("/coldcaller/<course>", methods=['POST','GET']) @app.route("/coldcaller/<course>", methods=['POST','GET'])
def coldcaller(course): def coldcaller(course):
if course not in ["com_304","com_411","com_674"]: public = request.args.get('public')
print(public)
if request.method == "POST":
student = coldcall_student(course)
if not student:
abort(404) abort(404)
else:
student = ''
return render_template('cold_caller.html', student=student, public=public)
def coldcall_student(course):
if course not in ["com_304","com_411","com_674", "amap"]:
return None
weight = 2 weight = 2
students = pd.read_csv(f'../assessments/{course}/{course}_students.csv').Name students = pd.read_csv(f'../assessments/{course}/{course}_students.csv').Name
student = ''
out_fn = f'../assessments/{course}/{course}.csv' out_fn = f'../assessments/{course}/{course}.csv'
caller = Caller(out_fn, students, weight) caller = Caller(out_fn, students, weight)
if request.method == "POST":
student = caller.get_random_student() student = caller.get_random_student()
return render_template('cold_caller.html', student=student) return student
@app.route("/shuffler", methods=['POST','GET']) @app.route("/shuffler", methods=['POST','GET'])
def shuffler(): def shuffler():
@@ -112,6 +124,7 @@ class Caller:
self.absent_today = df.loc[(df.date==self.today) & (df.answered.isin(['F', 'FALSE'])), 'name'] self.absent_today = df.loc[(df.date==self.today) & (df.answered.isin(['F', 'FALSE'])), 'name']
except FileNotFoundError or IndexError: except FileNotFoundError or IndexError:
times_called = pd.DataFrame() times_called = pd.DataFrame()
self.absent_today = pd.DataFrame()
return times_called return times_called
def update_weight(self, student): def update_weight(self, student):
@@ -123,8 +136,6 @@ class Caller:
else: else:
curr_weights = self.weights_dict curr_weights = self.weights_dict
for student in set(self.absent_today): for student in set(self.absent_today):
print(curr_weights.keys())
print(student in curr_weights)
if student != self.last_chosen: if student != self.last_chosen:
del curr_weights[student] del curr_weights[student]
rand_student = choices(list(curr_weights.keys()), weights=list(curr_weights.values()), k=1)[0] rand_student = choices(list(curr_weights.keys()), weights=list(curr_weights.values()), k=1)[0]

View File

@@ -1,5 +1,5 @@
$(document).ready(function() { $(document).ready(function() {
$('#goodButton, #badButton, #neutralButton, #absentButton').on('click', function() { $('#goodButton, #badButton, #neutralButton, #absentButton, #nextButton').on('click', function() {
var studentName = $('#studentName').text(); var studentName = $('#studentName').text();
console.log(studentName); console.log(studentName);
var buttonValue = $(this).val(); var buttonValue = $(this).val();
@@ -13,7 +13,7 @@ $(document).ready(function() {
course: courseCode course: courseCode
}, },
success: function(response) { success: function(response) {
console.log(response); $('#studentName').text(response);
}, },
error: function(error) { error: function(error) {
console.log(error); console.log(error);

View File

@@ -13,17 +13,29 @@ The next student is:
<h2 id='studentName' name='studentName'>{{student}}</h2> <h2 id='studentName' name='studentName'>{{student}}</h2>
<form method="post" id="todo-form">
<button class='rand-button' type="submit">Get random student</button>
</form> {% if student != '' %}
{% if public is none %}
<button class='assessment' id="goodButton" value="G">Good</button> <button class='assessment' id="goodButton" value="G">Good</button>
<button class='assessment' id="badButton" value="B">Bad</button> <button class='assessment' id="badButton" value="B">Bad</button>
<button class='assessment' id="neutralButton" value="M">Neutral</button> <button class='assessment' id="neutralButton" value="M">Neutral</button>
<button class='assessment' id="absentButton" value="absent">Absent</button> <button class='assessment' id="absentButton" value="absent">Absent</button>
<button class='assessment' id="nextButton" value="get_next">Skip</button>
{% else %}
<button class='assessment' id="neutralButton" value="?">Next Student</button>
<button class='assessment' id="absentButton" value="absent">Absent</button>
{% endif %}
{% else %}
<form method="post" id="todo-form">
<button class='rand-button' type="submit">Get random student</button>
</form>
{% endif %}
</body> </body>
</html> </html>