diff options
Diffstat (limited to 'kpov_judge/web/kpov_judge/kpov_judge.py')
-rwxr-xr-x | kpov_judge/web/kpov_judge/kpov_judge.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/kpov_judge/web/kpov_judge/kpov_judge.py b/kpov_judge/web/kpov_judge/kpov_judge.py index b832007..2231db0 100755 --- a/kpov_judge/web/kpov_judge/kpov_judge.py +++ b/kpov_judge/web/kpov_judge/kpov_judge.py @@ -250,7 +250,11 @@ def task_greeting(class_id, task_id, lang): # instructions = instructions.format(**public_params).encode('utf8') except Exception as e: instructions = str(e) - computer_list = db.student_computers.find({'class_id': class_id, 'task_id': task_id, 'student_id': student_id}) + computer_list = list(db.student_computers.find({'class_id': class_id, 'task_id': task_id, 'student_id': student_id})) + backing_images = set() + for computer in computer_list: + for disk_url in computer.get('disk_urls', []): + backing_images |= set(disk_url['backing']) if request.args.get('narediStack', 'false') == 'true': #db.student_tasks.update({'task_id': task_id, 'student_id': student_id}, {'$set': {'create_openstack': True}}, upsert = True) openstackCreated = False # Spremeni na True, ko odkomentiras zgornjo vrstico. @@ -261,7 +265,13 @@ def task_greeting(class_id, task_id, lang): openstackCreated = True else: openstackCreated = False - return render_template('task_greeting.html', computers=computer_list, lang=lang, openstack=openstackCreated, instructions=instructions) + return render_template('task_greeting.html', + disk_base_url='/'.join([app.config['STUDENT_DISK_URL'], student_id, class_id, task_id, '']), + computers=computer_list, + backing_images=sorted(backing_images), + lang=lang, + openstack=openstackCreated, + instructions=instructions) @app.route('/tasks/<class_id>/<task_id>/params.json', methods=['GET', 'POST']) |