Skip to content

Commit

Permalink
Merge pull request #15 from ucfopen/develop
Browse files Browse the repository at this point in the history
Release v3.1.0
  • Loading branch information
Thetwam committed Oct 30, 2018
2 parents 3190dd9 + 576eaf8 commit 9bc0a72
Show file tree
Hide file tree
Showing 6 changed files with 113 additions and 49 deletions.
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Change Log

## [3.1.0] - 2018-10-30

### General

- Added changelog
- Updated requirements versions
- Added functionality to automatically resize the LTI window
- Added XML URL to status page

### Bugfixes

- Upgraded Requests library to fix a security vulnerability

## [3.0.0] - 2017-11-21

### General

- Added background worker processes for Refresh and Update
- Allow extensions to become inactive (for when a student drops the course)
- Setup logging

### Bugfixes

- Fixed an issue with updating extensions of a student who changed roles
- Fixed an issue where clicking the name of a user wouldn't add them to the list

## [2.0.0] - 2017-03-07

### General

- Added database to track what extensions have been applied

## [1.0.0] - 2016-09-02

### General

- Initial release

[3.1.0]: https://github.com/ucfopen/quiz-extensions/compare/v3.0.0...v3.1.0
[3.0.0]: https://github.com/ucfopen/quiz-extensions/compare/v2.0.0...v3.0.0
[2.0.0]: https://github.com/ucfopen/quiz-extensions/compare/v1.0.0...v2.0.0
[1.0.0]: https://github.com/ucfopen/quiz-extensions/compare/5a01595...v1.0.0
10 changes: 5 additions & 5 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Flask==0.12.4
Flask-Migrate==2.0.3
Flask-SQLAlchemy==2.2
Flask==1.0.2
Flask-Migrate==2.3.0
Flask-SQLAlchemy==2.3.2
lxml==3.4.4
mysqlclient==1.3.13
oauth2==1.9.0.post1
requests==2.14.2
rq==0.10.0
requests==2.20.0
rq==0.12.0
2 changes: 2 additions & 0 deletions static/quiz.js
Original file line number Diff line number Diff line change
Expand Up @@ -432,9 +432,11 @@ function ajax_check_missing_quizzes(course_id) {

if (response) {
missing_alert.style.display = "";
resizeFrame();
}
else {
missing_alert.style.display = "none";
resizeFrame();
}
}
};
Expand Down
95 changes: 56 additions & 39 deletions templates/base.html
Original file line number Diff line number Diff line change
@@ -1,51 +1,68 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script type=text/javascript>
$SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
</script>
<meta charset='utf-8'/>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='main.css') }}">
<title>Quiz Extensions</title>

<style>
.wrapper {
margin: .5em;
}

img { height: 150px;}

/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#canary { display: block; }
}

</style>

</head>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script type=text/javascript>
$SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
</script>
<meta charset='utf-8'/>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='main.css') }}">
<title>Quiz Extensions</title>

<style>
.wrapper {
margin: .5em;
}

img { height: 150px;}

/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#canary { display: block; }
}
</style>
</head>

<body class="default">
<div class="wrapper">
{% block content %} {% endblock %}
<footer class="text-center">Built by <a href="https://cdl.ucf.edu/" target="_blank">UCF CDL</a> &copy; <script>document.write(new Date().getFullYear())</script></footer>
{% block content %} {% endblock %}
<footer class="text-center">Built by <a href="https://cdl.ucf.edu/" target="_blank">UCF CDL</a> &copy; <script>document.write(new Date().getFullYear())</script></footer>
</div>
<script type='text/javascript' src='{{ url_for('static', filename='quiz.js') }}'></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', '{{ GOOGLE_ANALYTICS }}', 'auto');
ga('send', 'pageview');

// resize containing iframe height
function resizeFrame(){
console.log("resizing frame...");
var default_height = document.body.scrollHeight + 50;
default_height = default_height > 500 ? default_height : 500;

// IE 8 & 9 only support string data, so send objects as string
parent.postMessage(JSON.stringify({
subject: "lti.frameResize",
height: default_height
}), "*");
}

ga('create', '{{ GOOGLE_ANALYTICS }}', 'auto');
ga('send', 'pageview');
// update iframe height on resize
window.addEventListener("resize", function(){
resizeFrame();
});

resizeFrame();
</script>
</body>
</html>
</html>
8 changes: 4 additions & 4 deletions test_requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
-r requirements.txt

blinker==1.4
coverage==4.4.1
fakeredis==0.10.3
Flask-Testing==0.6.2
requests-mock==1.3.0
coverage==4.5.1
fakeredis==0.14.0
Flask-Testing==0.7.1
requests-mock==1.5.2
3 changes: 2 additions & 1 deletion views.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,8 @@ def status(): # pragma: no cover
'url': url_for('index', _external=True),
'api_url': config.API_URL,
'debug': app.debug,
'xml_url': url_for('xml', _external=True)
'xml_url': url_for('xml', _external=True),
'job_queue': len(q.jobs)
}

# Check index
Expand Down

0 comments on commit 9bc0a72

Please sign in to comment.