From 1bd0f1e0c19d7f89051c83ea6f8c058c703069a8 Mon Sep 17 00:00:00 2001 From: Tim Van Baak Date: Sat, 22 Feb 2020 10:55:03 -0800 Subject: [PATCH] Refactor config access in server through cdc --- amanuensis/server/lexicon.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/amanuensis/server/lexicon.py b/amanuensis/server/lexicon.py index ce1cd1c..c59607c 100644 --- a/amanuensis/server/lexicon.py +++ b/amanuensis/server/lexicon.py @@ -4,8 +4,9 @@ from flask import ( Blueprint, render_template, url_for, redirect, g, flash, request, Markup) from flask_login import login_required, current_user -from amanuensis.config import json_ro, open_ex, prepend +from amanuensis.config import root from amanuensis.config.loader import ReadOnlyOrderedDict +from amanuensis.errors import MissingConfigError from amanuensis.lexicon.manage import valid_add, add_player, add_character from amanuensis.server.forms import ( LexiconConfigForm, LexiconJoinForm,LexiconCharacterForm) @@ -190,14 +191,13 @@ def get_bp(): articles=articles, jsonfmt=jsonfmt) - filename = f'{cid}.{aid}.json' - path = prepend('lexicon', g.lexicon.id, 'draft', filename) - import os - if not os.path.isfile(path): + filename = f'{cid}.{aid}' + try: + with g.lexicon.ctx.draft.read(filename) as a: + article = a + except MissingConfigError: flash("Draft not found") return redirect(url_for('lexicon.session', name=name)) - with json_ro(path) as a: - article = a return render_template( 'lexicon/editor.html', @@ -225,9 +225,9 @@ def get_bp(): }, "contents": "" } - filename = f"{cid}.{new_aid}.json" - with open_ex('lexicon', g.lexicon.id, 'draft', filename, mode='w') as f: - json.dump(article, f) + filename = f"{cid}.{new_aid}" + with g.lexicon.ctx.draft.new(filename) as j: + j.update(article) return redirect(url_for('lexicon.editor', name=name, cid=cid, aid=new_aid)) @bp.route('/session/editor/update', methods=['POST'])