diff --git a/CTFd/challenges.py b/CTFd/challenges.py index 61935d70..fef9101b 100644 --- a/CTFd/challenges.py +++ b/CTFd/challenges.py @@ -36,7 +36,7 @@ def chals(): else: return redirect('/') if can_view_challenges(): - chals = Challenges.query.add_columns('id', 'name', 'value', 'description', 'category').order_by(Challenges.value).all() + chals = Challenges.query.filter(Challenges.hidden!=True).add_columns('id', 'name', 'value', 'description', 'category').order_by(Challenges.value).all() json = {'game':[]} for x in chals: diff --git a/CTFd/static/admin/js/chalboard.js b/CTFd/static/admin/js/chalboard.js index bfe7dba4..fe981331 100644 --- a/CTFd/static/admin/js/chalboard.js +++ b/CTFd/static/admin/js/chalboard.js @@ -34,6 +34,10 @@ function loadchal(id, update) { $('.chal-value').val(obj.value); $('.chal-category').val(obj.category); $('.chal-id').val(obj.id); + $('.chal-hidden').prop('checked', false); + if (obj.hidden) { + $('.chal-hidden').prop('checked', true); + } //$('#update-challenge .chal-delete').attr({ // 'href': '/admin/chal/close/' + (id + 1) //}) diff --git a/CTFd/static/img/ctfd_transfer.svg b/CTFd/static/img/ctfd_transfer.svg new file mode 100644 index 00000000..eedc6b62 --- /dev/null +++ b/CTFd/static/img/ctfd_transfer.svg @@ -0,0 +1,26 @@ + + + + diff --git a/CTFd/templates/admin/chals.html b/CTFd/templates/admin/chals.html index 70335b8c..8a1426ca 100644 --- a/CTFd/templates/admin/chals.html +++ b/CTFd/templates/admin/chals.html @@ -76,6 +76,14 @@ + +