This commit is contained in:
cube
2026-03-24 20:03:16 +00:00
parent 9c37b028f8
commit aa68290a39
4 changed files with 71 additions and 5 deletions

View File

@@ -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)

View File

@@ -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):

View File

@@ -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 %}

View 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 %}