def tag_picture(picture_name, tag_person=None): if len(request.args.viewkeys()) > 0: if "all" in request.args: database.alter_picture(g.db, picture_name, public=True) else: database.alter_picture(g.db, picture_name, public=False) if "persons" in request.args: old_persons = set(map(lambda x: x["name"], database.get_all_persons_on_picture(g.db, picture_name))) new_persons = set(filter(lambda x: len(x)>0, map(lambda x: x.strip(), request.args["persons"].splitlines()))) added_persons = new_persons - old_persons deleted_persons = old_persons - new_persons for person in added_persons: database.add_person(g.db, person) database.connect_person_with_picture(g.db, picture_name, person) for person in deleted_persons: database.unconnect_person_from_picture(g.db, picture_name, person) if len(database.get_all_pictures_of_a_person(g.db, person)) < 1: database.delete_person(g.db, person) if "action" in request.args: prev, next = database.get_prev_and_next_picture_name(g.db, picture_name, tag_person) new_name = picture_name if request.args["action"] == "next": new_name = next if request.args["action"] == "prev": new_name = prev if new_name is None: if tag_person is not None: return redirect("/private-pictures/"+str(tag_person)) else: return redirect("/tag") if tag_person is not None: return redirect("/tag/"+str(tag_person)+"/"+new_name) else: return redirect("/tag/"+new_name) stored_picture_data = database.get_picture_data(g.db, picture_name) persons_on_picture = map(lambda x: x["name"], database.get_all_persons_on_picture(g.db, picture_name)) return render_template("tag.html", picture_path = os.path.join("/pictures", picture_name), picture_name = picture_name, checked=stored_picture_data["public_viewable"], persons = "\n".join(persons_on_picture) )
def person(): if request.method == "POST": person = json.loads(request.data) db_person = db.add_person(person["Name"], person["Priority"]) return json.dumps(db_person), 201, json_content elif request.method == "GET": people = db.get_people() return json.dumps(people), 200, json_content elif request.method == "DELETE": person = json.loads(request.data) db_person = db.delete_person(person["Name"]) return json.dumps(db_person), json_content
def eliminar(self, id=None): if database.connect('start_thread'): database.delete_person(id) raise cherrypy.HTTPRedirect('/')