diff --git a/myriad/__init__.py b/myriad/__init__.py index 11302f1..a365773 100644 --- a/myriad/__init__.py +++ b/myriad/__init__.py @@ -15,7 +15,6 @@ def create_app(test_config=None): os.makedirs(app.instance_path, exist_ok=True) app.config.from_pyfile('config.py') - #print(app.config["REGISTRATION"]) from . import db db.init_app(app) diff --git a/myriad/manage.py b/myriad/manage.py index d3d969d..fe127a7 100644 --- a/myriad/manage.py +++ b/myriad/manage.py @@ -1,8 +1,7 @@ -from flask import ( - Blueprint, flash, g, redirect, render_template, request, session, url_for, current_app, send_file, send_from_directory -) +from flask import Blueprint, flash, g, redirect, render_template, request, session, url_for, current_app, send_file, send_from_directory + 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.db import get_db @@ -24,6 +23,45 @@ def new(): 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/") @login_required def delete(mid): diff --git a/myriad/templates/base.html b/myriad/templates/base.html index 7fe706b..dfc2fc4 100644 --- a/myriad/templates/base.html +++ b/myriad/templates/base.html @@ -19,6 +19,7 @@ {% if g.user %}
Manage
+ {% endif %} diff --git a/myriad/templates/manage/import.html b/myriad/templates/manage/import.html new file mode 100644 index 0000000..16447ee --- /dev/null +++ b/myriad/templates/manage/import.html @@ -0,0 +1,28 @@ +{% extends 'base.html' %} + +{% block header %} +
{% block title %}Import{% endblock %}
+{% endblock %} + +{% block content %} +
+
Upload a json file obtained from Myriad Export here
+ +
+ + +
+ + {% if response %} + {% for key in response %} + {{ key }}: {{ response[key] }}
+ {% endfor %} + +

+ + Edit imported member
+ View full list + {% endif %} + +
+{% endblock %} \ No newline at end of file