Browse Source

Added more fields to tools

joel
Simon Bowie 3 years ago
parent
commit
dd42fc0cf3
6 changed files with 166 additions and 14 deletions
  1. +13
    -4
      web/app/create.py
  2. +9
    -0
      web/app/models.py
  3. +46
    -1
      web/app/templates/create.html
  4. +88
    -8
      web/app/templates/tool.html
  5. +1
    -1
      web/app/templates/tools.html
  6. +9
    -0
      web/app/tool.py

+ 13
- 4
web/app/create.py View File

@login_required @login_required
def create_resource(): def create_resource():
if request.method == 'POST': if request.method == 'POST':
if request.form.get('type') == 'tool':
if request.form.get('resource_type') == 'tool':
name = request.form.get('name') name = request.form.get('name')
description = request.form.get('description') description = request.form.get('description')
project_url = request.form.get('project_url')
repository_url = request.form.get('repository_url')
platform_status = request.form.get('platform_status')
expertise = request.form.get('expertise')
self_host_expertise = request.form.get('self_host_expertise')
ingest = request.form.get('ingest')
output = request.form.get('output')
saas = request.form.get('saas')
dependencies = request.form.get('dependencies')


if not name: if not name:
flash('Name is required!') flash('Name is required!')
return redirect(url_for('create.create')) return redirect(url_for('create.create'))


# create a new tool with the form data # create a new tool with the form data
new_tool = Tool(name=name, description=description)
new_tool = Tool(name=name, description=description, project_url=project_url, repository_url=repository_url, platform_status=platform_status, expertise=expertise, self_host_expertise=self_host_expertise, ingest=ingest, output=output, saas=saas, dependencies=dependencies)


# add the new tool to the database # add the new tool to the database
db.session.add(new_tool) db.session.add(new_tool)
db.session.commit() db.session.commit()


elif request.form.get('type') == 'example':
elif request.form.get('resource_type') == 'example':
name = request.form.get('name') name = request.form.get('name')
description = request.form.get('description') description = request.form.get('description')


db.session.add(new_example) db.session.add(new_example)
db.session.commit() db.session.commit()


elif request.form.get('type') == 'practice':
elif request.form.get('resource_type') == 'practice':
name = request.form.get('name') name = request.form.get('name')
description = request.form.get('description') description = request.form.get('description')



+ 9
- 0
web/app/models.py View File

created = db.Column(db.DateTime, default=datetime.utcnow) created = db.Column(db.DateTime, default=datetime.utcnow)
name = db.Column(db.Text) name = db.Column(db.Text)
description = db.Column(db.Text) description = db.Column(db.Text)
project_url = db.Column(db.Text)
repository_url = db.Column(db.Text)
platform_status = db.Column(db.Text)
expertise = db.Column(db.Text)
self_host_expertise = db.Column(db.Text)
ingest = db.Column(db.Text)
output = db.Column(db.Text)
saas = db.Column(db.Text)
dependencies = db.Column(db.Text)


# table for examples # table for examples
class Example(db.Model): class Example(db.Model):

+ 46
- 1
web/app/templates/create.html View File

</div> </div>


<div class="mb-3 mt-3"> <div class="mb-3 mt-3">
<label for="description">Tool description</label>
<label for="description">Short description</label>
<textarea class="form-control" rows="4" type="text" name="description" placeholder="Tool description" autofocus=""></textarea> <textarea class="form-control" rows="4" type="text" name="description" placeholder="Tool description" autofocus=""></textarea>
</div> </div>

<div class="mb-3 mt-3">
<label for="project_url">Project URL</label>
<input class="form-control" type="text" name="project_url" placeholder="Project URL" autofocus="">
</div>

<div class="mb-3 mt-3">
<label for="repository_url">Repository URL</label>
<input class="form-control" type="text" name="repository_url" placeholder="Repository URL" autofocus="">
</div>

<div class="mb-3 mt-3">
<label for="platform_status">Stand-alone or platform?</label>
<input class="form-control" type="text" name="platform_status" placeholder="Stand-alone or platform?" autofocus="">
</div>

<div class="mb-3 mt-3">
<label for="expertise">Expertise required</label>
<input class="form-control" type="text" name="expertise" placeholder="Expertise required" autofocus="">
</div>

<div class="mb-3 mt-3">
<label for="self_host_expertise">Expertise required to self-host</label>
<input class="form-control" type="text" name="self_host_expertise" placeholder="Expertise required to self-host" autofocus="">
</div>

<div class="mb-3 mt-3">
<label for="ingest">Import / ingest</label>
<input class="form-control" type="text" name="ingest" placeholder="Import / ingest" autofocus="">
</div>

<div class="mb-3 mt-3">
<label for="output">Output formats</label>
<input class="form-control" type="text" name="output" placeholder="Output formats" autofocus="">
</div>

<div class="mb-3 mt-3">
<label for="saas">SAAS?</label>
<input class="form-control" type="text" name="saas" placeholder="SAAS?" autofocus="">
</div>

<div class="mb-3 mt-3">
<label for="dependencies">Technical dependencies</label>
<input class="form-control" type="text" name="dependencies" placeholder="Technical dependencies" autofocus="">
</div>
</div> </div>
<div id="resource_type_example" class="resource_type_input" style="display: none;"> <div id="resource_type_example" class="resource_type_input" style="display: none;">
<div class="mb-3 mt-3"> <div class="mb-3 mt-3">

+ 88
- 8
web/app/templates/tool.html View File

Created: Created:
</th> </th>
<td> <td>
{{ tool['created'] }}
{{ tool['created'].strftime("%Y-%m-%d %H:%M") }} UTC
</td> </td>
</tr> </tr>
<tr> <tr>
<th>
Description:
</th>
<td>
{{ tool['description'] }}
</td>
</tr>
<th>
Description:
</th>
<td>
{{ tool['description'] }}
</td>
</tr>
<tr>
<th>
Project page:
</th>
<td>
{{ tool['project_url'] }}
</td>
</tr>
<tr>
<th>
Code repository:
</th>
<td>
{{ tool['repository_url'] }}
</td>
</tr>
<tr>
<th>
Stand-alone or platform?:
</th>
<td>
{{ tool['platform_status'] }}
</td>
</tr>
<tr>
<th>
Expertise required:
</th>
<td>
{{ tool['expertise'] }}
</td>
</tr>
<tr>
<th>
Expertise required to self-host:
</th>
<td>
{{ tool['self_host_expertise'] }}
</td>
</tr>
<tr>
<th>
Import / ingest:
</th>
<td>
{{ tool['ingest'] }}
</td>
</tr>
<tr>
<th>
Output formats:
</th>
<td>
{{ tool['output'] }}
</td>
</tr>
<tr>
<th>
SAAS?:
</th>
<td>
{{ tool['saas'] }}
</td>
</tr>
<tr>
<th>
Community-hosted examples:
</th>
<td>

</td>
</tr>
<tr>
<th>
Technical dependencies:
</th>
<td>
{{ tool['dependencies'] }}
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

+ 1
- 1
web/app/templates/tools.html View File

</a> </a>
</div> </div>
<div class="card-body"> <div class="card-body">
<span class="badge bg-secondary">{{ tool['created'] }}</span>
<span class="badge bg-secondary">{{ tool['created'].strftime("%Y-%m-%d %H:%M") }} UTC</span>
{% if current_user.is_authenticated %} {% if current_user.is_authenticated %}
<a href="{{ url_for('tool.edit_tool', tool_id=tool['id']) }}"> <a href="{{ url_for('tool.edit_tool', tool_id=tool['id']) }}">
<span class="badge bg-warning">Edit</span> <span class="badge bg-warning">Edit</span>

+ 9
- 0
web/app/tool.py View File

tool = Tool.query.get(tool_id) tool = Tool.query.get(tool_id)
tool.name = name tool.name = name
tool.description = description tool.description = description
tool.project_url = project_url
tool.repository_url = repository_url
tool.platform_status = platform_status
tool.expertise = expertise
tool.self_host_expertise = self_host_expertise
tool.ingest = ingest
tool.output = output
tool.saas = saas
tool.dependencies = dependencies
db.session.commit() db.session.commit()
return redirect(url_for('tool.get_tools')) return redirect(url_for('tool.get_tools'))



Loading…
Cancel
Save