Selaa lähdekoodia

changes to backend forms for editing and creation

main
Simon Bowie 2 kuukautta sitten
vanhempi
commit
52653a1588
7 muutettua tiedostoa jossa 498 lisäystä ja 469 poistoa
  1. +1
    -0
      web/app/book.py
  2. +1
    -2
      web/app/static/js/main.js
  3. +5
    -1
      web/app/static/styles/main.css
  4. +181
    -178
      web/app/templates/create.html
  5. +291
    -272
      web/app/templates/edit.html
  6. +18
    -16
      web/app/templates/login.html
  7. +1
    -0
      web/app/tool.py

+ 1
- 0
web/app/book.py Näytä tiedosto

book.bookUrl = request.form['bookUrl'] book.bookUrl = request.form['bookUrl']
book.isbn = request.form['isbn'] book.isbn = request.form['isbn']
book.typology = request.form['typology'] book.typology = request.form['typology']
book.videoUrl = request.form['videoUrl']
db.session.commit() db.session.commit()
linked_resources = request.form.getlist('linked_tools') + request.form.getlist('linked_practices') linked_resources = request.form.getlist('linked_tools') + request.form.getlist('linked_practices')
remove_linked_resources = request.form.getlist('remove_linked_resources') remove_linked_resources = request.form.getlist('remove_linked_resources')

+ 1
- 2
web/app/static/js/main.js Näytä tiedosto

// htmx.logAll(); // htmx.logAll();


// Dynamic HTML forms based on dropdown menu // Dynamic HTML forms based on dropdown menu
$("#resource_type").change(function() { $(document).on("change", "#resource_type", function() {
var $ = jQuery.noConflict();
var resource_type = $(this).val(); var resource_type = $(this).val();
$(".resource_type_input").hide("fast", function() { $(".resource_type_input").hide("fast", function() {
$("#resource_type_" + resource_type).show("slow"); $("#resource_type_" + resource_type).show("slow");

+ 5
- 1
web/app/static/styles/main.css Näytä tiedosto



textarea.form-control { textarea.form-control {
width: 100%; width: 100%;
padding: 35px 20px; padding: 1rem 1rem;
margin: 8px 0; margin: 8px 0;
box-sizing: border-box; box-sizing: border-box;
border: 2px solid black; border: 2px solid black;
right: 0; right: 0;
height: 480px; height: 480px;
width: 100%; width: 100%;
}

.input-form {
padding: 1.5rem 2.5rem;
} }

+ 181
- 178
web/app/templates/create.html Näytä tiedosto

{% extends 'base.html' %} {% extends 'base.html' %}


{% block content %} {% block content %}
<h1>{% block title %} Add a New Resource{% endblock %}</h1> <div class="input-form">
<form method="POST" action="/create" id="resource"> <h1>{% block title %} Add a New Resource{% endblock %}</h1>
<div class="mb-3 mt-3"> <form method="POST" action="/create" id="resource">
<label for="type">Type</label> <div class="mb-3 mt-3">
<select class="form-select" id="resource_type" name="resource_type" form="resource"> <label for="type">Type</label>
<option selected="selected">Please choose</option> <select class="form-select" id="resource_type" name="resource_type" form="resource">
<option value="tool">Tool</option> <option selected="selected">Please choose</option>
<option value="practice">Practice</option> <option value="tool">Tool</option>
<option value="book">Book</option> <option value="practice">Practice</option>
</select> <option value="book">Book</option>
</div> </select>
<div id="resource_type_tool" class="resource_type_input" style="display: none;"> </div>
<div class="mb-3 mt-3"> <div id="resource_type_tool" class="resource_type_input" style="display: none;">
<label for="tool_name">Tool name</label> <div class="mb-3 mt-3">
<input class="form-control" type="text" name="tool_name" placeholder="Tool name" autofocus=""> <label for="tool_name">Tool name</label>
</div> <input class="form-control" type="text" name="tool_name" placeholder="Tool name" autofocus="">
<div class="mb-3 mt-3"> </div>
<label for="description">Short description</label> <div class="mb-3 mt-3">
<textarea class="form-control" rows="4" type="text" name="description" placeholder="Tool description" autofocus=""></textarea> <label for="description">Short description</label>
</div> <textarea class="form-control" rows="4" type="text" name="description" placeholder="Tool description" autofocus=""></textarea>
<div class="mb-3 mt-3"> </div>
<label for="developer">Developer</label> <div class="mb-3 mt-3">
<input class="form-control" type="text" name="developer" placeholder="Developer" autofocus=""> <label for="developer">Developer</label>
</div> <input class="form-control" type="text" name="developer" placeholder="Developer" autofocus="">
<div class="mb-3 mt-3"> </div>
<label for="developerUrl">Developer URL</label> <div class="mb-3 mt-3">
<input class="form-control" type="text" name="developerUrl" placeholder="Developer URL" autofocus=""> <label for="developerUrl">Developer URL</label>
</div> <input class="form-control" type="text" name="developerUrl" placeholder="Developer URL" autofocus="">
<div class="mb-3 mt-3"> </div>
<label for="projectUrl">Project URL</label> <div class="mb-3 mt-3">
<input class="form-control" type="text" name="projectUrl" placeholder="Project URL" autofocus=""> <label for="projectUrl">Project URL</label>
</div> <input class="form-control" type="text" name="projectUrl" placeholder="Project URL" autofocus="">
<div class="mb-3 mt-3"> </div>
<label for="repositoryUrl">Repository URL</label> <div class="mb-3 mt-3">
<input class="form-control" type="text" name="repositoryUrl" placeholder="Repository URL" autofocus=""> <label for="repositoryUrl">Repository URL</label>
</div> <input class="form-control" type="text" name="repositoryUrl" placeholder="Repository URL" autofocus="">
</div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="license">Software license</label> <label for="license">Software license</label>
<input class="form-control" type="text" name="license" placeholder="Software license" autofocus=""> <input class="form-control" type="text" name="license" placeholder="Software license" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="scriptingLanguage">Software language</label> <label for="scriptingLanguage">Software language</label>
<input class="form-control" type="text" name="scriptingLanguage" placeholder="Software language" autofocus=""> <input class="form-control" type="text" name="scriptingLanguage" placeholder="Software language" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="expertiseToUse">Expertise required to use</label> <label for="expertiseToUse">Expertise required to use</label>
<input class="form-control" type="text" name="expertiseToUse" placeholder="Expertise required to use" autofocus=""> <input class="form-control" type="text" name="expertiseToUse" placeholder="Expertise required to use" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="expertiseToHost">Expertise required to self-host</label> <label for="expertiseToHost">Expertise required to self-host</label>
<input class="form-control" type="text" name="expertiseToHost" placeholder="Expertise required to self-host" autofocus=""> <input class="form-control" type="text" name="expertiseToHost" placeholder="Expertise required to self-host" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="dependencies">Technical dependencies</label> <label for="dependencies">Technical dependencies</label>
<input class="form-control" type="text" name="dependencies" placeholder="Technical dependencies" autofocus=""> <input class="form-control" type="text" name="dependencies" placeholder="Technical dependencies" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="ingestFormats">Import / ingest formats</label> <label for="ingestFormats">Import / ingest formats</label>
<input class="form-control" type="text" name="ingestFormats" placeholder="Import / ingest formats" autofocus=""> <input class="form-control" type="text" name="ingestFormats" placeholder="Import / ingest formats" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="outputFormats">Output formats</label> <label for="outputFormats">Output formats</label>
<input class="form-control" type="text" name="outputFormats" placeholder="Output formats" autofocus=""> <input class="form-control" type="text" name="outputFormats" placeholder="Output formats" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="status">Platform status</label> <label for="status">Platform status</label>
<input class="form-control" type="text" name="status" placeholder="Platform status" autofocus=""> <input class="form-control" type="text" name="status" placeholder="Platform status" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="linked_practices">Add practices relationship(s) (hold Ctrl to select multiple options)</label> <label for="linked_practices">Add practices relationship(s) (hold Ctrl to select multiple options)</label>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<select name="linked_practices" id="linked_practices" aria-label="Add practices relationships" class="selectpicker" data-live-search="true" multiple> <select name="linked_practices" id="linked_practices" aria-label="Add practices relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'practice' %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endfor %}
</select>
</div>
<div class="mb-3 mt-3">
<label for="linked_books">Add books relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_books" id="linked_books" aria-label="Add books relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'book' %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endfor %}
</select>
</div>
</div>
<div id="resource_type_practice" class="resource_type_input" style="display: none;">
<div class="mb-3 mt-3">
<label for="practice_name">Practice name</label>
<input class="form-control" type="text" name="practice_name" placeholder="Practice name" autofocus="">
</div>
<div class="mb-3 mt-3">
<label for="practice_markdown">Markdown text</label>
<textarea class="form-control" rows="4" type="text" name="practice_markdown" placeholder="Markdown text" autofocus=""></textarea>
</div>
<div class="mb-3 mt-3">
<label for="linked_tools">Add tools relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_tools" id="linked_tools" aria-label="Add tools relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %} {% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'tool' %} {% if resource_dropdown['type'] == 'practice' %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option> <option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="linked_books">Add books relationship(s) (hold Ctrl to select multiple options)</label> <label for="linked_books">Add books relationship(s) (hold Ctrl to select multiple options)</label>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<select name="linked_books" id="linked_books" aria-label="Add books relationships" class="selectpicker" data-live-search="true" multiple> <select name="linked_books" id="linked_books" aria-label="Add books relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %} {% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'book' %} {% if resource_dropdown['type'] == 'book' %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option> <option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
</div> </div>
<div id="resource_type_book" class="resource_type_input" style="display: none;"> <div id="resource_type_practice" class="resource_type_input" style="display: none;">
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="book_name">Book name</label> <label for="practice_name">Practice name</label>
<input class="form-control" type="text" name="book_name" placeholder="Book name" autofocus=""> <input class="form-control" type="text" name="practice_name" placeholder="Practice name" autofocus="">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="description">Description</label> <label for="practice_markdown">Markdown text</label>
<textarea class="form-control" rows="4" type="text" name="description" placeholder="Book description" autofocus=""></textarea> <textarea class="form-control" rows="4" type="text" name="practice_markdown" placeholder="Markdown text" autofocus=""></textarea>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="author">Author</label> <label for="linked_tools">Add tools relationship(s) (hold Ctrl to select multiple options)</label>
<input class="form-control" type="text" name="author" placeholder="Author" autofocus=""> </div>
</div> <div class="mb-3 mt-3">
<div class="mb-3 mt-3"> <select name="linked_tools" id="linked_tools" aria-label="Add tools relationships" class="selectpicker" data-live-search="true" multiple>
<label for="year">Publication year</label> {% for resource_dropdown in resource_dropdown %}
<input class="form-control" type="text" name="year" placeholder="Publication year" autofocus=""> {% if resource_dropdown['type'] == 'tool' %}
</div> <option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
<div class="mb-3 mt-3"> {% endif %}
<label for="typology">Typology category</label> {% endfor %}
<input class="form-control" type="text" name="typology" placeholder="Typology category" autofocus=""> </select>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="bookUrl">URL</label> <label for="linked_books">Add books relationship(s) (hold Ctrl to select multiple options)</label>
<input class="form-control" type="text" name="bookUrl" placeholder="URL" autofocus=""> </div>
</div> <div class="mb-3 mt-3">
<div class="mb-3 mt-3"> <select name="linked_books" id="linked_books" aria-label="Add books relationships" class="selectpicker" data-live-search="true" multiple>
<label for="isbn">ISBN</label> {% for resource_dropdown in resource_dropdown %}
<input class="form-control" type="text" name="isbn" placeholder="ISBN" autofocus=""> {% if resource_dropdown['type'] == 'book' %}
</div> <option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
<div class="mb-3 mt-3"> {% endif %}
<label for="linked_tools">Add tools relationship(s) (hold Ctrl to select multiple options)</label> {% endfor %}
</div> </select>
<div class="mb-3 mt-3"> </div>
<select name="linked_tools" id="linked_tools" aria-label="Add tools relationships" class="selectpicker" data-live-search="true" multiple> </div>
{% for resource_dropdown in resource_dropdown %} <div id="resource_type_book" class="resource_type_input" style="display: none;">
{% if resource_dropdown['type'] == 'tool' %} <div class="mb-3 mt-3">
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option> <label for="book_name">Book name</label>
{% endif %} <input class="form-control" type="text" name="book_name" placeholder="Book name" autofocus="">
{% endfor %} </div>
</select> <div class="mb-3 mt-3">
</div> <label for="description">Description</label>
<div class="mb-3 mt-3"> <textarea class="form-control" rows="4" type="text" name="description" placeholder="Book description" autofocus=""></textarea>
<label for="linked_practices">Add practices relationship(s) (hold Ctrl to select multiple options)</label> </div>
</div> <div class="mb-3 mt-3">
<div class="mb-3 mt-3"> <label for="author">Author</label>
<select name="linked_practices" id="linked_practices" aria-label="Add practices relationships" class="selectpicker" data-live-search="true" multiple> <input class="form-control" type="text" name="author" placeholder="Author" autofocus="">
{% for resource_dropdown in resource_dropdown %} </div>
{% if resource_dropdown['type'] == 'practice' %} <div class="mb-3 mt-3">
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option> <label for="year">Publication year</label>
{% endif %} <input class="form-control" type="text" name="year" placeholder="Publication year" autofocus="">
{% endfor %} </div>
</select> <div class="mb-3 mt-3">
</div> <label for="typology">Typology category</label>
</div> <input class="form-control" type="text" name="typology" placeholder="Typology category" autofocus="">
<button type="submit" class="btn btn-default">Submit</button> </div>
</form> <div class="mb-3 mt-3">
<script <label for="bookUrl">URL</label>
src="https://code.jquery.com/jquery-3.7.1.js" <input class="form-control" type="text" name="bookUrl" placeholder="URL" autofocus="">
integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" </div>
crossorigin="anonymous"></script> <div class="mb-3 mt-3">
<label for="isbn">ISBN</label>
<input class="form-control" type="text" name="isbn" placeholder="ISBN" autofocus="">
</div>
<div class="mb-3 mt-3">
<label for="linked_tools">Add tools relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_tools" id="linked_tools" aria-label="Add tools relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'tool' %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endfor %}
</select>
</div>
<div class="mb-3 mt-3">
<label for="linked_practices">Add practices relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_practices" id="linked_practices" aria-label="Add practices relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'practice' %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endfor %}
</select>
</div>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<script
src="https://code.jquery.com/jquery-3.7.1.js"
integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4="
crossorigin="anonymous"></script>
</div>
{% endblock %} {% endblock %}

+ 291
- 272
web/app/templates/edit.html Näytä tiedosto



{% block content %} {% block content %}


<h1>{% block title %} Edit "{{ resource['name'] }}" {% endblock %}</h1> <div class="input-form">


<form method="post"> <h1>{% block title %} Edit "{{ resource['name'] }}" {% endblock %}</h1>
<div class="mb-3 mt-3">
<label for="name">Name</label>
<input type="text" name="name" placeholder="Name"
class="form-control"
value="{{ request.form['name'] or resource['name'] }}">
</input>
</div>


{% if resource['type'] == 'tool' %} <form method="post">
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="description">Description</label> <label for="name">Name</label>
<textarea name="description" placeholder="Description" <input type="text" name="name" placeholder="Name"
class="form-control">{{ request.form['description'] or resource['description'] }}</textarea> class="form-control"
</div> value="{{ request.form['name'] or resource['name'] }}">
</input>
</div>


<div class="mb-3 mt-3"> {% if resource['type'] == 'tool' %}
<label for="developer">Developer</label> <div class="mb-3 mt-3">
<input type="text" name="developer" placeholder="Developer" <label for="description">Description</label>
class="form-control" <textarea name="description" placeholder="Description"
value="{{ request.form['developer'] or resource['developer'] }}"> class="form-control">{{ request.form['description'] or resource['description'] }}</textarea>
</input> </div>
</div> <div class="mb-3 mt-3">
<div class="mb-3 mt-3"> <label for="developer">Developer</label>
<label for="developerUrl">Developer URL</label> <input type="text" name="developer" placeholder="Developer"
<input type="text" name="developerUrl" placeholder="Developer URL" class="form-control"
class="form-control" value="{{ request.form['developer'] or resource['developer'] }}">
value="{{ request.form['developerUrl'] or resource['developerUrl'] }}"> </input>
</input> </div>
</div> <div class="mb-3 mt-3">
<div class="mb-3 mt-3"> <label for="developerUrl">Developer URL</label>
<label for="projectUrl">Project URL</label> <input type="text" name="developerUrl" placeholder="Developer URL"
<input type="text" name="projectUrl" placeholder="Project URL" class="form-control"
class="form-control" value="{{ request.form['developerUrl'] or resource['developerUrl'] }}">
value="{{ request.form['projectUrl'] or resource['projectUrl'] }}"> </input>
</input> </div>
</div> <div class="mb-3 mt-3">
<div class="mb-3 mt-3"> <label for="projectUrl">Project URL</label>
<label for="repositoryUrl">Repository URL</label> <input type="text" name="projectUrl" placeholder="Project URL"
<input type="text" name="repositoryUrl" placeholder="Repository URL" class="form-control"
class="form-control" value="{{ request.form['projectUrl'] or resource['projectUrl'] }}">
value="{{ request.form['repositoryUrl'] or resource['repositoryUrl'] }}"> </input>
</input> </div>
</div> <div class="mb-3 mt-3">
<div class="mb-3 mt-3"> <label for="repositoryUrl">Repository URL</label>
<label for="license">Software license</label> <input type="text" name="repositoryUrl" placeholder="Repository URL"
<input type="text" name="license" placeholder="Software license" class="form-control"
class="form-control" value="{{ request.form['repositoryUrl'] or resource['repositoryUrl'] }}">
value="{{ request.form['license'] or resource['license'] }}"> </input>
</input> </div>
</div> <div class="mb-3 mt-3">
<div class="mb-3 mt-3"> <label for="license">Software license</label>
<label for="scriptingLanguage">Software language(s)</label> <input type="text" name="license" placeholder="Software license"
<input type="text" name="scriptingLanguage" placeholder="Software language(s)" class="form-control"
class="form-control" value="{{ request.form['license'] or resource['license'] }}">
value="{{ request.form['scriptingLanguage'] or resource['scriptingLanguage'] }}"> </input>
</div>
<div class="mb-3 mt-3">
<label for="scriptingLanguage">Software language(s)</label>
<input type="text" name="scriptingLanguage" placeholder="Software language(s)"
class="form-control"
value="{{ request.form['scriptingLanguage'] or resource['scriptingLanguage'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="expertiseToUse">Expertise required to use</label>
<input type="text" name="expertiseToUse" placeholder="Expertise required to use"
class="form-control"
value="{{ request.form['expertiseToUse'] or resource['expertiseToUse'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="expertiseToHost">Expertise required to host</label>
<input type="text" name="expertiseToHost" placeholder="Expertise required to host"
class="form-control"
value="{{ request.form['expertiseToHost'] or resource['expertiseToHost'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="dependencies">Technical dependencies</label>
<input type="text" name="dependencies" placeholder="Technical dependencies"
class="form-control"
value="{{ request.form['dependencies'] or resource['dependencies'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="ingestFormats">Import / ingest formats</label>
<input type="text" name="ingestFormats" placeholder="Import / ingest formats"
class="form-control"
value="{{ request.form['ingestFormats'] or resource['ingestFormats'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="outputFormats">Output formats</label>
<input type="text" name="outputFormats" placeholder="Output formats"
class="form-control"
value="{{ request.form['outputFormats'] or resource['outputFormats'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="videoUrl">Accompanying video</label>
<input type="text" name="videoUrl" placeholder="URL for accompanying video"
class="form-control"
value="{{ request.form['videoUrl'] or resource['videoUrl'] }}">
</input> </input>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="expertiseToUse">Expertise required to use</label> <label for="status">Platform status</label>
<input type="text" name="expertiseToUse" placeholder="Expertise required to use" <input type="text" name="status" placeholder="Platform status"
class="form-control" class="form-control"
value="{{ request.form['expertiseToUse'] or resource['expertiseToUse'] }}"> value="{{ request.form['status'] or resource['status'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="linked_practices">Add practices relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_practices" id="linked_practices" aria-label="Add practices relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'practice' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endif %}
{% endfor %}
</select>
</div>
<div class="mb-3 mt-3">
<label for="linked_books">Add books relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_books" id="linked_books" aria-label="Add books relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'book' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endif %}
{% endfor %}
</select>
</div>

{% elif resource['type'] == 'practice' %}
<div class="mb-3 mt-3">
<label for="practice_markdown">Markdown text</label>
<textarea name="practice_markdown" placeholder="Markdown text"
class="form-control">{{ request.form['practice_markdown'] or practice_markdown }}</textarea>
</div>
<div class="mb-3 mt-3">
<label for="linked_tools">Add tools relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_tools" id="linked_tools" aria-label="Add tools relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'tool' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endif %}
{% endfor %}
</select>
</div>
<div class="mb-3 mt-3">
<label for="linked_books">Add books relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_books" id="linked_books" aria-label="Add books relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'book' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endif %}
{% endfor %}
</select>
</div>

{% elif resource['type'] == 'book' %}
<div class="mb-3 mt-3">
<label for="description">Description</label>
<textarea name="description" placeholder="Description"
class="form-control">{{ request.form['description'] or resource['description'] }}</textarea>
</div>

<div class="mb-3 mt-3">
<label for="author">Author</label>
<input type="text" name="author" placeholder="Author"
class="form-control"
value="{{ request.form['author'] or resource['author'] }}">
</input> </input>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="expertiseToHost">Expertise required to host</label> <label for="year">Publication year</label>
<input type="text" name="expertiseToHost" placeholder="Expertise required to host" <input type="text" name="year" placeholder="Publication year"
class="form-control" class="form-control"
value="{{ request.form['expertiseToHost'] or resource['expertiseToHost'] }}"> value="{{ request.form['year'] or resource['year'] }}">
</input> </input>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="dependencies">Technical dependencies</label> <label for="typology">Typology category</label>
<input type="text" name="dependencies" placeholder="Technical dependencies" <input type="text" name="typology" placeholder="Typology category"
class="form-control" class="form-control"
value="{{ request.form['dependencies'] or resource['dependencies'] }}"> value="{{ request.form['typology'] or resource['typology'] }}">
</input> </input>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="ingestFormats">Import / ingest formats</label> <label for="bookUrl">URL</label>
<input type="text" name="ingestFormats" placeholder="Import / ingest formats" <input type="text" name="bookUrl" placeholder="URL"
class="form-control" class="form-control"
value="{{ request.form['ingestFormats'] or resource['ingestFormats'] }}"> value="{{ request.form['bookUrl'] or resource['bookUrl'] }}">
</input> </input>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="outputFormats">Output formats</label> <label for="isbn">ISBN</label>
<input type="text" name="outputFormats" placeholder="Output formats" <input type="text" name="isbn" placeholder="ISBN"
class="form-control" class="form-control"
value="{{ request.form['outputFormats'] or resource['outputFormats'] }}"> value="{{ request.form['isbn'] or resource['isbn'] }}">
</input> </input>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="status">Platform status</label> <label for="videoUrl">Accompanying video</label>
<input type="text" name="status" placeholder="Platform status" <input type="text" name="videoUrl" placeholder="URL for accompanying video"
class="form-control" class="form-control"
value="{{ request.form['status'] or resource['status'] }}"> value="{{ request.form['videoUrl'] or resource['videoUrl'] }}">
</input> </input>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="linked_practices">Add practices relationship(s) (hold Ctrl to select multiple options)</label> <label for="linked_tools">Add tools relationship(s) (hold Ctrl to select multiple options)</label>
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<select name="linked_practices" id="linked_practices" aria-label="Add practices relationships" class="selectpicker" data-live-search="true" multiple> <select name="linked_tools" id="linked_tools" aria-label="Add tools relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %} {% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'practice' %} {% if resource_dropdown['type'] == 'tool' %}
{% if relationships and resource_dropdown in relationships %} {% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option> <option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %} {% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option> <option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %} {% endif %}
{% endif %}
{% endfor %}
</select>
</div>
<div class="mb-3 mt-3">
<label for="linked_books">Add books relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_books" id="linked_books" aria-label="Add books relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'book' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %} {% endif %}
{% endif %} {% endfor %}
{% endfor %} </select>
</select> </div>
</div> <div class="mb-3 mt-3">

<label for="linked_practices">Add practices relationship(s) (hold Ctrl to select multiple options)</label>
{% elif resource['type'] == 'practice' %} </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="practice_markdown">Markdown text</label> <select name="linked_practices" id="linked_practices" aria-label="Add practices relationships" class="selectpicker" data-live-search="true" multiple>
<textarea name="practice_markdown" placeholder="Markdown text" {% for resource_dropdown in resource_dropdown %}
class="form-control">{{ request.form['practice_markdown'] or practice_markdown }}</textarea> {% if resource_dropdown['type'] == 'practice' %}
</div> {% if relationships and resource_dropdown in relationships %}
<div class="mb-3 mt-3"> <option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
<label for="linked_tools">Add tools relationship(s) (hold Ctrl to select multiple options)</label> {% else %}
</div> <option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
<div class="mb-3 mt-3"> {% endif %}
<select name="linked_tools" id="linked_tools" aria-label="Add tools relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'tool' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endif %}
{% endfor %}
</select>
</div>
<div class="mb-3 mt-3">
<label for="linked_books">Add books relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_books" id="linked_books" aria-label="Add books relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'book' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %} {% endif %}
{% endif %} {% endfor %}
{% endfor %} </select>
</select> </div>
</div> {% endif %}


{% elif resource['type'] == 'book' %} {% if relationships %}
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="description">Description</label> <label for="linked_practice_id">Remove relationship(s)</label>
<textarea name="description" placeholder="Description" </div>
class="form-control">{{ request.form['description'] or resource['description'] }}</textarea> <div class="mb-3 mt-3">
</div> <select name="remove_linked_resources" id="remove_linked_resources" aria-label="Remove link" class="selectpicker" data-live-search="true" multiple>
{% for relationship in relationships %}
<option value="{{ relationship['id'] }}">{{ relationship['name'] }}</option>
{% endfor %}
</select>
</div>
{% endif %}


<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="author">Author</label> <button type="submit" class="btn btn-default">Submit</button>
<input type="text" name="author" placeholder="Author" </div>
class="form-control" </form>
value="{{ request.form['author'] or resource['author'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="year">Publication year</label>
<input type="text" name="year" placeholder="Publication year"
class="form-control"
value="{{ request.form['year'] or resource['year'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="typology">Typology category</label>
<input type="text" name="typology" placeholder="Typology category"
class="form-control"
value="{{ request.form['typology'] or resource['typology'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="bookUrl">URL</label>
<input type="text" name="bookUrl" placeholder="URL"
class="form-control"
value="{{ request.form['bookUrl'] or resource['bookUrl'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="isbn">ISBN</label>
<input type="text" name="isbn" placeholder="ISBN"
class="form-control"
value="{{ request.form['isbn'] or resource['isbn'] }}">
</input>
</div>
<div class="mb-3 mt-3">
<label for="linked_tools">Add tools relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_tools" id="linked_tools" aria-label="Add tools relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'tool' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endif %}
{% endfor %}
</select>
</div>
<div class="mb-3 mt-3">
<label for="linked_practices">Add practices relationship(s) (hold Ctrl to select multiple options)</label>
</div>
<div class="mb-3 mt-3">
<select name="linked_practices" id="linked_practices" aria-label="Add practices relationships" class="selectpicker" data-live-search="true" multiple>
{% for resource_dropdown in resource_dropdown %}
{% if resource_dropdown['type'] == 'practice' %}
{% if relationships and resource_dropdown in relationships %}
<option value="{{ resource_dropdown['id'] }}" selected>{{ resource_dropdown['name'] }}</option>
{% else %}
<option value="{{ resource_dropdown['id'] }}">{{ resource_dropdown['name'] }}</option>
{% endif %}
{% endif %}
{% endfor %}
</select>
</div>
{% endif %}


{% if relationships %} {% if resource['type'] == 'tool' %}
<div class="mb-3 mt-3"> <form action="{{ url_for('tool.delete_tool', tool_id=resource['id']) }}" method="POST">
<label for="linked_practice_id">Remove relationship(s)</label> <input type="submit" value="Delete"
</div> class="btn btn-danger btn-sm"
<div class="mb-3 mt-3"> onclick="return confirm('Are you sure you want to delete this tool?')">
<select name="remove_linked_resources" id="remove_linked_resources" aria-label="Remove link" class="selectpicker" data-live-search="true" multiple> </form>
{% for relationship in relationships %} {% endif %}
<option value="{{ relationship['id'] }}">{{ relationship['name'] }}</option> {% if resource['type'] == 'practice' %}
{% endfor %} <form action="{{ url_for('practice.delete_practice', practice_id=resource['id']) }}" method="POST">
</select> <input type="submit" value="Delete"
</div> class="btn btn-danger btn-sm"
{% endif %} onclick="return confirm('Are you sure you want to delete this practice?')">
</form>
{% endif %}
{% if resource['type'] == 'book' %}
<form action="{{ url_for('book.delete_book', book_id=resource['id']) }}" method="POST">
<input type="submit" value="Delete"
class="btn btn-danger btn-sm"
onclick="return confirm('Are you sure you want to delete this book?')">
</form>
{% endif %}


<div class="mb-3 mt-3"> </div>
<button type="submit" class="btn btn-default">Submit</button>
</div>
</form>


{% if resource['type'] == 'tool' %}
<form action="{{ url_for('tool.delete_tool', tool_id=resource['id']) }}" method="POST">
<input type="submit" value="Delete"
class="btn btn-danger btn-sm"
onclick="return confirm('Are you sure you want to delete this tool?')">
</form>
{% endif %}
{% if resource['type'] == 'practice' %}
<form action="{{ url_for('practice.delete_practice', practice_id=resource['id']) }}" method="POST">
<input type="submit" value="Delete"
class="btn btn-danger btn-sm"
onclick="return confirm('Are you sure you want to delete this practice?')">
</form>
{% endif %}
{% if resource['type'] == 'book' %}
<form action="{{ url_for('book.delete_book', book_id=resource['id']) }}" method="POST">
<input type="submit" value="Delete"
class="btn btn-danger btn-sm"
onclick="return confirm('Are you sure you want to delete this book?')">
</form>
{% endif %}
{% endblock %} {% endblock %}

+ 18
- 16
web/app/templates/login.html Näytä tiedosto

{% extends 'base.html' %} {% extends 'base.html' %}


{% block content %} {% block content %}
<h1>{% block title %} Login {% endblock %}</h1> <div class="input-form">
<form method="POST" action="/login"> <h1>{% block title %} Login {% endblock %}</h1>
<div class="mb-3 mt-3"> <form method="POST" action="/login">
<input class="form-control" type="email" name="email" placeholder="Your Email" autofocus=""> <div class="mb-3 mt-3">
</div> <input class="form-control" type="email" name="email" placeholder="Your Email" autofocus="">
</div>


<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<input class="form-control" type="password" name="password" placeholder="Your Password"> <input class="form-control" type="password" name="password" placeholder="Your Password">
</div> </div>
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label class="checkbox"> <label class="checkbox">
<input type="checkbox"> <input type="checkbox">
Remember me Remember me
</label> </label>
</div> </div>
<button class="btn btn-default">Login</button> <button class="btn btn-default">Login</button>
</form> </form>
</div>
{% endblock %} {% endblock %}

+ 1
- 0
web/app/tool.py Näytä tiedosto

tool.ingestFormats = request.form['ingestFormats'] tool.ingestFormats = request.form['ingestFormats']
tool.outputFormats = request.form['outputFormats'] tool.outputFormats = request.form['outputFormats']
tool.status = request.form['status'] tool.status = request.form['status']
tool.videoUrl = request.form['videoUrl']
db.session.commit() db.session.commit()
linked_resources = request.form.getlist('linked_practices') + request.form.getlist('linked_books') linked_resources = request.form.getlist('linked_practices') + request.form.getlist('linked_books')
remove_linked_resources = request.form.getlist('remove_linked_resources') remove_linked_resources = request.form.getlist('remove_linked_resources')

Loading…
Peruuta
Tallenna