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)
|
||||
|
||||
app.config.from_pyfile('config.py')
|
||||
#print(app.config["REGISTRATION"])
|
||||
|
||||
from . import db
|
||||
db.init_app(app)
|
||||
|
||||
@@ -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/<mid>")
|
||||
@login_required
|
||||
def delete(mid):
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
{% if g.user %}
|
||||
<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.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.assets') }}">Site Assets</a></div>
|
||||
{% 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