implement #22
This commit is contained in:
@@ -15,7 +15,6 @@ def create_app(test_config=None):
|
|||||||
os.makedirs(app.instance_path, exist_ok=True)
|
os.makedirs(app.instance_path, exist_ok=True)
|
||||||
|
|
||||||
app.config.from_pyfile('config.py')
|
app.config.from_pyfile('config.py')
|
||||||
#print(app.config["REGISTRATION"])
|
|
||||||
|
|
||||||
from . import db
|
from . import db
|
||||||
db.init_app(app)
|
db.init_app(app)
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
from flask import (
|
from flask import Blueprint, flash, g, redirect, render_template, request, session, url_for, current_app, send_file, send_from_directory
|
||||||
Blueprint, flash, g, redirect, render_template, request, session, url_for, current_app, send_file, send_from_directory
|
|
||||||
)
|
|
||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
import os, uuid, json, zipfile
|
import os, uuid, json, zipfile, datetime
|
||||||
|
|
||||||
from myriad.auth import login_required
|
from myriad.auth import login_required
|
||||||
from myriad.db import get_db
|
from myriad.db import get_db
|
||||||
@@ -24,6 +23,45 @@ def new():
|
|||||||
|
|
||||||
return render_template('manage/new.html')
|
return render_template('manage/new.html')
|
||||||
|
|
||||||
|
@bp.route("/import", methods=("GET","POST"))
|
||||||
|
@login_required
|
||||||
|
def import_member():
|
||||||
|
db = get_db()
|
||||||
|
response=""
|
||||||
|
data=None
|
||||||
|
mid=None
|
||||||
|
|
||||||
|
if request.method=="POST":
|
||||||
|
if "file" in request.files:
|
||||||
|
file = request.files["file"]
|
||||||
|
if file.filename.split(".")[1].lower() == "json":
|
||||||
|
response = json.loads(file.read())
|
||||||
|
|
||||||
|
date_raw = response["date-created"].split(",")
|
||||||
|
date = date_raw[0]
|
||||||
|
day,month,year = date.split("/")
|
||||||
|
time = date_raw[1]
|
||||||
|
hour,minute,second = time.split(":")
|
||||||
|
date_created = datetime.datetime(int(year), int(month), int(day), int(hour), int(minute), int(second))
|
||||||
|
|
||||||
|
user_id = g.user[0]
|
||||||
|
|
||||||
|
if response["privacy"] == "public":
|
||||||
|
privacy = 1
|
||||||
|
else:
|
||||||
|
privacy = 0
|
||||||
|
|
||||||
|
data = [date_created, user_id, response["name"], response["description"], privacy]
|
||||||
|
db.execute("INSERT INTO member (created,user_id, member_name, bio,public) VALUES (?, ?, ?, ?, ?)",(data[0], data[1], data[2], data[3], data[4]))
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
last = db.execute('SELECT last_insert_rowid()').fetchone()
|
||||||
|
mid = last[0]
|
||||||
|
else:
|
||||||
|
response = "Not a JSON file"
|
||||||
|
|
||||||
|
return render_template('manage/import.html', response=response, mid=mid)
|
||||||
|
|
||||||
@bp.route("/delete/<mid>")
|
@bp.route("/delete/<mid>")
|
||||||
@login_required
|
@login_required
|
||||||
def delete(mid):
|
def delete(mid):
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
{% if g.user %}
|
{% if g.user %}
|
||||||
<div class="heading">Manage</div>
|
<div class="heading">Manage</div>
|
||||||
<div class="navitem">> <a href="{{ url_for('manage.new') }}">Add New Member</a></div>
|
<div class="navitem">> <a href="{{ url_for('manage.new') }}">Add New Member</a></div>
|
||||||
|
<div class="navitem">> <a href="{{ url_for('manage.import_member') }}">Import New Member</a></div>
|
||||||
<div class="navitem">> <a href="{{ url_for('manage.groups') }}">Member groups</a></div>
|
<div class="navitem">> <a href="{{ url_for('manage.groups') }}">Member groups</a></div>
|
||||||
<div class="navitem">> <a href="{{ url_for('manage.assets') }}">Site Assets</a></div>
|
<div class="navitem">> <a href="{{ url_for('manage.assets') }}">Site Assets</a></div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
28
myriad/templates/manage/import.html
Normal file
28
myriad/templates/manage/import.html
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
<div class="title">{% block title %}Import{% endblock %}</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="container">
|
||||||
|
<div class="maintext">Upload a json file obtained from Myriad Export here</div>
|
||||||
|
|
||||||
|
<form method="post" enctype="multipart/form-data">
|
||||||
|
<input type="file" name="file">
|
||||||
|
<input type="submit" value="Import">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% if response %}
|
||||||
|
{% for key in response %}
|
||||||
|
<b>{{ key }}:</b> {{ response[key] }}<br>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<a href="{{ url_for('manage.edit', mid=mid) }}">Edit imported member</a><br>
|
||||||
|
<a href="{{ url_for('home.full_list') }}">View full list</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user