Commit a3a84dde by Eric Fischer

Infrastructural tweaks for Backgrid dependency loading

parent 7f799416
...@@ -32,6 +32,7 @@ before_script: ...@@ -32,6 +32,7 @@ before_script:
- "export DISPLAY=:99.0" - "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start" - "sh -e /etc/init.d/xvfb start"
script: script:
- "make verify-generated-files"
- "make test" - "make test"
- "python manage.py makemessages -l eo" - "python manage.py makemessages -l eo"
branches: branches:
......
...@@ -28,15 +28,17 @@ install-nltk-data: ...@@ -28,15 +28,17 @@ install-nltk-data:
STATIC_JS = openassessment/xblock/static/js STATIC_JS = openassessment/xblock/static/js
STATIC_CSS = openassessment/xblock/static/css
javascript: javascript: update-npm-requirements
node_modules/.bin/uglifyjs $(STATIC_JS)/src/oa_shared.js $(STATIC_JS)/src/*.js $(STATIC_JS)/src/lms/*.js > "$(STATIC_JS)/openassessment-lms.min.js" node_modules/.bin/uglifyjs $(STATIC_JS)/src/oa_shared.js $(STATIC_JS)/src/*.js $(STATIC_JS)/src/lms/*.js $(STATIC_JS)/lib/backgrid/backgrid.min.js -c > "$(STATIC_JS)/openassessment-lms.min.js"
node_modules/.bin/uglifyjs $(STATIC_JS)/src/oa_shared.js $(STATIC_JS)/src/*.js $(STATIC_JS)/src/studio/*.js > "$(STATIC_JS)/openassessment-studio.min.js" node_modules/.bin/uglifyjs $(STATIC_JS)/src/oa_shared.js $(STATIC_JS)/src/*.js $(STATIC_JS)/src/studio/*.js $(STATIC_JS)/lib/backgrid/backgrid.min.js -c > "$(STATIC_JS)/openassessment-studio.min.js"
sass: sass:
python scripts/compile_sass.py python scripts/compile_sass.py
verify-generated-files: javascript sass
git diff --exit-code
install-test: install-test:
pip install -q -r requirements/test.txt pip install -q -r requirements/test.txt
...@@ -50,8 +52,8 @@ install-dev: ...@@ -50,8 +52,8 @@ install-dev:
install: install-wheels install-python install-js install-nltk-data install-test install-dev javascript sass install: install-wheels install-python install-js install-nltk-data install-test install-dev javascript sass
quality: quality:
jshint openassessment/xblock/static/js/src -c .jshintrc --verbose jshint $(STATIC_JS)/src -c .jshintrc --verbose
./node_modules/jscs/bin/jscs openassessment/xblock/static/js/src --verbose ./node_modules/jscs/bin/jscs $(STATIC_JS)/src --verbose
./scripts/run-pep8.sh ./scripts/run-pep8.sh
./scripts/run-pylint.sh ./scripts/run-pylint.sh
...@@ -76,3 +78,8 @@ test-acceptance: ...@@ -76,3 +78,8 @@ test-acceptance:
test-a11y: test-a11y:
./scripts/test-acceptance.sh accessibility ./scripts/test-acceptance.sh accessibility
update-npm-requirements:
npm update
cp ./node_modules/backgrid/lib/backgrid*.js $(STATIC_JS)/lib/backgrid/
cp ./node_modules/backgrid/lib/backgrid*.css $(STATIC_CSS)/lib/backgrid/
...@@ -361,10 +361,8 @@ class OpenAssessmentBlock(MessageMixin, ...@@ -361,10 +361,8 @@ class OpenAssessmentBlock(MessageMixin,
"show_staff_area": self.is_course_staff and not self.in_studio_preview, "show_staff_area": self.is_course_staff and not self.in_studio_preview,
} }
template = get_template("openassessmentblock/oa_base.html") template = get_template("openassessmentblock/oa_base.html")
context = Context(context_dict)
fragment = Fragment(template.render(context))
return self._update_and_return_fragment(fragment, 'OpenAssessmentBlock') return self._create_fragment(template, context_dict, initialize_js_func='OpenAssessmentBlock')
def ora_blocks_listing_view(self, context=None): def ora_blocks_listing_view(self, context=None):
"""This view is used in the Open Response Assessment tab in the LMS Instructor Dashboard """This view is used in the Open Response Assessment tab in the LMS Instructor Dashboard
...@@ -394,16 +392,16 @@ class OpenAssessmentBlock(MessageMixin, ...@@ -394,16 +392,16 @@ class OpenAssessmentBlock(MessageMixin,
} }
template = get_template('openassessmentblock/instructor_dashboard/oa_listing.html') template = get_template('openassessmentblock/instructor_dashboard/oa_listing.html')
context = Context(context_dict)
fragment = Fragment(template.render(context))
min_postfix = '.min' if settings.DEBUG else '' min_postfix = '.min' if settings.DEBUG else ''
css_lst = ["static/css/lib/backgrid/backgrid%s.css" % min_postfix] return self._create_fragment(
js_lst = ["static/js/lib/backgrid/backgrid%s.js" % min_postfix] template,
context_dict,
return self._update_and_return_fragment(fragment, 'CourseOpenResponsesListingBlock', initialize_js_func='CourseOpenResponsesListingBlock',
additional_css=css_lst, additional_js=js_lst) additional_css=["static/css/lib/backgrid/backgrid%s.css" % min_postfix],
additional_js=["static/js/lib/backgrid/backgrid%s.js" % min_postfix]
)
def grade_available_responses_view(self, context=None): def grade_available_responses_view(self, context=None):
"""Grade Available Responses view. """Grade Available Responses view.
...@@ -431,16 +429,17 @@ class OpenAssessmentBlock(MessageMixin, ...@@ -431,16 +429,17 @@ class OpenAssessmentBlock(MessageMixin,
) )
template = get_template('openassessmentblock/instructor_dashboard/oa_grade_available_responses.html') template = get_template('openassessmentblock/instructor_dashboard/oa_grade_available_responses.html')
context = Context(context_dict)
fragment = Fragment(template.render(context))
return self._update_and_return_fragment(fragment, 'StaffAssessmentBlock') return self._create_fragment(template, context_dict, initialize_js_func='StaffAssessmentBlock')
def _update_and_return_fragment(self, fragment, initialize_js_func, additional_css=None, additional_js=None): def _create_fragment(self, template, context_dict, initialize_js_func, additional_css=None, additional_js=None):
""" """
Auxiliary function to return updated fragment Creates a fragment for display.
""" """
context = Context(context_dict)
fragment = Fragment(template.render(context))
if additional_css is None: if additional_css is None:
additional_css = [] additional_css = []
if additional_js is None: if additional_js is None:
...@@ -468,8 +467,7 @@ class OpenAssessmentBlock(MessageMixin, ...@@ -468,8 +467,7 @@ class OpenAssessmentBlock(MessageMixin,
fragment.add_css(load(css)) fragment.add_css(load(css))
fragment.add_css(load(css_url)) fragment.add_css(load(css_url))
for js in additional_js: # minified additional_js should be already included in 'make javascript'
fragment.add_javascript(load(js))
fragment.add_javascript(load("static/js/openassessment-lms.min.js")) fragment.add_javascript(load("static/js/openassessment-lms.min.js"))
js_context_dict = { js_context_dict = {
"ALLOWED_IMAGE_MIME_TYPES": self.ALLOWED_IMAGE_MIME_TYPES, "ALLOWED_IMAGE_MIME_TYPES": self.ALLOWED_IMAGE_MIME_TYPES,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment