def save_form(): ID = request.form["id"] if not ID: raise Exception("no id") if not allowed_knowl_id.match(ID): flask.flash( """Oops, knowl id '%s' is not allowed. It must consist of lower/uppercase characters, no spaces, numbers or '.', '_' and '-'.""" % ID, "error", ) return flask.redirect(url_for(".index")) k = Knowl(ID) k.title = request.form["title"] k.content = request.form["content"] k.quality = request.form["quality"] k.timestamp = datetime.now() k.save(who=current_user.get_id()) from knowl import save_history save_history(k, current_user.get_id()) return flask.redirect(url_for(".show", ID=ID))
def save_form(): ID = request.form['id'] if not ID: raise Exception("no id") if not allowed_id(ID): return redirect(url_for(".index")) NEWID = request.form.get('krename', '').strip() FINISH_RENAME = request.form.get('finish_rename', '') k = Knowl(ID, saving=True, renaming=bool(NEWID)) new_title = request.form['title'] new_content = request.form['content'] who = current_user.get_id() if new_title != k.title or new_content != k.content: if not k.content and not k.title and k.exists(allow_deleted=True): # Creating a new knowl with the same id as one that had previously been deleted k.resurrect() flash("Knowl successfully created. Note that a knowl with this id existed previously but was deleted; its history has been restored.") k.title = new_title k.content = new_content k.timestamp = datetime.now() k.status = 0 k.save(who=who) if NEWID: if not current_user.is_admin(): flash("You do not have permissions to rename knowl", "error") elif not allowed_id(NEWID): pass else: try: k.start_rename(NEWID, who) except ValueError as err: flash(str(err)) else: if k.sed_safety == 1: flash("Knowl rename process started. You can change code references using".format(NEWID)) flash("git grep -l '{0}' | xargs sed -i '' -e 's/{0}/{1}/g' (Mac)".format(ID, NEWID)) flash("git grep -l '{0}' | xargs sed -i 's/{0}/{1}/g' (Linux)".format(ID, NEWID)) elif k.sed_safety == -1: flash("Knowl rename process started. This knowl appears in the code (see references below), but cannot trivially be replaced with grep/sed".format(NEWID)) else: time.sleep(0.01) k.actually_rename() flash("Knowl renamed to {0} successfully.".format(NEWID)) ID = NEWID elif FINISH_RENAME: # We need to sleep briefly so that we don't have two identical timestamps time.sleep(0.01) if FINISH_RENAME == 'finish': k.actually_rename() elif FINISH_RENAME == 'undo': k.undo_rename() if k.type == -2: return redirect(url_for(".show", ID=k.source)) else: return redirect(url_for(".show", ID=ID))
def save_form(): ID = request.form['id'] if not ID: raise Exception("no id") if not allowed_knowl_id.match(ID): flask.flash( """Oops, knowl id '%s' is not allowed. It must consist of lower/uppercase characters, no spaces, numbers or '.', '_' and '-'.""" % ID, "error") return flask.redirect(url_for(".index")) k = Knowl(ID) k.title = request.form['title'] k.content = request.form['content'] k.quality = request.form['quality'] k.timestamp = datetime.now() k.save(who=current_user.get_id()) return flask.redirect(url_for(".show", ID=ID))
def save_form(): ID = request.form['id'] if not ID: raise Exception("no id") if not allowed_id(ID): return redirect(url_for(".index")) FINISH_RENAME = request.form.get('finish_rename', '') UNDO_RENAME = request.form.get('undo_rename', '') if FINISH_RENAME: k = Knowl(ID) k.actually_rename() flash( Markup( "Renaming complete; the history of %s has been merged into %s" % (ID, k.source_name))) return redirect(url_for(".show", ID=k.source_name)) elif UNDO_RENAME: k = Knowl(ID) k.undo_rename() flash( Markup( "Renaming undone; the history of %s has been merged back into %s" % (k.source_name, ID))) return redirect(url_for(".show", ID=ID)) NEWID = request.form.get('krename', '').strip() k = Knowl(ID, saving=True, renaming=bool(NEWID)) new_title = request.form['title'] new_content = request.form['content'] who = current_user.get_id() if new_title != k.title or new_content != k.content: if not k.content and not k.title and k.exists(allow_deleted=True): # Creating a new knowl with the same id as one that had previously been deleted k.resurrect() flash( Markup( "Knowl successfully created. Note that a knowl with this id existed previously but was deleted; its history has been restored." )) k.title = new_title k.content = new_content k.timestamp = datetime.now() k.status = 0 k.save(who=who) if NEWID: if not current_user.is_admin(): flash_error("You do not have permissions to rename knowl") elif not allowed_id(NEWID): pass else: try: if k.sed_safety == 0: time.sleep(0.01) k.actually_rename(NEWID) flash( Markup("Knowl renamed to {0} successfully.".format( NEWID))) else: k.start_rename(NEWID, who) except ValueError as err: flash_error(str(err), "error") else: if k.sed_safety == 1: flash( Markup( "Knowl rename process started. You can change code references using" .format(NEWID))) flash( Markup( "git grep -l '{0}' | xargs sed -i '' -e 's/{0}/{1}/g' (Mac)" .format(ID, NEWID))) flash( Markup( "git grep -l '{0}' | xargs sed -i 's/{0}/{1}/g' (Linux)" .format(ID, NEWID))) elif k.sed_safety == -1: flash( Markup( "Knowl rename process started. This knowl appears in the code (see references below), but cannot trivially be replaced with grep/sed" .format(NEWID))) ID = NEWID if k.type == -2: return redirect(url_for(".show", ID=k.source)) else: return redirect(url_for(".show", ID=ID))