* challenge update modal is now replaceable
By defining
* [type]-challenge-update.hbs
* [type]-challenge-modals.hbs
* [type]-challenge-update.js
in the /static/admin/js/templates/challenges/[type] folder the
challenge update modal will be defined for any challenges of
the given type. This allows for essentially full customizability
of how you will edit custom challenge types in the admin UI.
The reason for having two files, *update.hbs and *modals.hbs, is
that *update.hbs defines the body for the main challenge update
modal, while *modals.hbs defines any additional modals which will be
used within the main modal
There is one function which is required in *update.js is
`openchal(id)` which will be passed the id of the challenge to be
edited and should open the modal as well as load any needed data
* fixed multi-modal issues
Issues were coming from two sources:
* I had placed the modals in an indirect relationship in the DOM
tree. They need to be siblings I now see
* There was double counting of modals within multi-modal.js. This
only started to appear with the dynamically loaded modals. I
fixed the script to accurately count modals each time
* Switching to Flask-Migrate to create tables/database. Adding Hints & Unlocks.
* Adding db.create_all call for sqlite db's (sqlite is not properly handled with alembic yet)
* Python 3 testing works properly with 3.5
* Adding admin side of hints
* Hints are viewable for users
* add scoreboard freeze
* delete excess div close tag
* filter out scores from team page when scoreboard freezes
* allow teams to see their full score and solves in team page
* fix unset place and score
* change parameter and filter out /solves for graph
* fix utils methods undefined
* add small notice about frozen scoreboard and resolve failing tests
* Update __init__.py
* Update scoreboard.py
* Testing 3.6
* Fixing Python 3 testing
* Fixing both kinds of tests :)
* PEP8 lint project and add linting checks to build process (#229)
* Revert "PEP8 lint project and add linting checks to build process (#229)"
This reverts commit 15d89d2b66030cdc2a6276b0a73acaa4912c06ab.
This makes the button do nothing but ultimately the issue is that the
buttons should automatically update the database through AJAX or
similar. This is a temporary fix so the Keys modal isn’t an outlier in
design and doesn’t cause an error.
Docker provides some useful resources for Ubuntu as a base image
and installing software via apt-get:
https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#apt-get
It's also useful to pin the Ubuntu version to 16.04 so we have a good
idea of what OS we're using in the image. To that end, I think we can
also avoid performing an upgrade so we can even further control which
versions of software we're using. If we do an upgrade then you'll have
different versions of software depending on when you build the image.
* Extracting key checking logic to make it more extensible
* Add missing keys __init__ file
* Adding logging access and errors to Dockerfile
* Use template inheritance for page.html (#198)
* Fix exception on cofirmation screen (#202)
When a user attempts to confirm an e-mail address, an exception is thrown because the db session is closed prior to logging.
The line db.session.close() has to move after the logging, otherwise the team parameters from the orm object are discarded and an exception is thrown.
Closing the session after logging, fixes the issue.
* Adding custom key types for challenges
* Separating out admin.py, adding challenge types
* Don't let truncate affect edit modal
* File uploads no longer refresh page (#207)
Closes (#180)
* Fixing missing import
* Fixing mistake in flag JSON response
* Removing compare_digest to support Python 2.7.6
* Fixing inconsistencies in standard challenge modal
* Passing submission input over to template js
* Handling cases where data can't be found in the DOM better
* Don't refresh modal if it's just a refresh operation
* Fixing solving challenges while scoreboard is public
Induce a redirect to make user login
* Adding missing js file and fixing migration
* Fixing some visual glitches and streamlining challenge creation
* Fixed hard coded upload directory (#206)
* Extracting key checking logic to make it more extensible
* Add missing keys __init__ file
* Adding logging access and errors to Dockerfile
* Use template inheritance for page.html (#198)
* Fix exception on cofirmation screen (#202)
When a user attempts to confirm an e-mail address, an exception is thrown because the db session is closed prior to logging.
The line db.session.close() has to move after the logging, otherwise the team parameters from the orm object are discarded and an exception is thrown.
Closing the session after logging, fixes the issue.
* Adding custom key types for challenges
* Separating out admin.py, adding challenge types
* Don't let truncate affect edit modal
* File uploads no longer refresh page (#207)
Closes (#180)
* Fixing missing import
* Fixing mistake in flag JSON response
* Removing compare_digest to support Python 2.7.6
* Fixing inconsistencies in standard challenge modal
* Passing submission input over to template js
* Handling cases where data can't be found in the DOM better
* Don't refresh modal if it's just a refresh operation
* Fixing solving challenges while scoreboard is public
Induce a redirect to make user login
* Adding missing js file and fixing migration
* Fixing some visual glitches and streamlining challenge creation
* Use <int:xxx> in routes to prevent some errors 500 (#192)
* Use first_or_404() to prevent some errors 500 (#193)
* Add a populating script for awards. (#191)
* Creating upload_file util
* Marking 1.0.0 in __init__ and starting database migrations
* Upgrading some more HTML
* Adding CHANGELOG.md
* PEP 8 compliance (#183)
* Group imports: standard library, third party, local
* Remove unnecessary spaces
* Comments should start with a # and a single space
* Adding tests for GETs on user facing pages
* Adding more user facing tests
51% test coverage
* Fixes#182
* Cleaning up Pages
Fixes a bug with CSS updating
* Loading challenges from the location hash wouldn't have hashes because
the solves attribute wouldn't be populated.
* Making pages already be in a container so people don't need to add it.