Exemplo n.º 1
0
 def remove_collection(self, collection_name):
     fcname = self.full_collection_name(collection_name)
     for doc in db[fcname].find():
         if "file_id" in doc:
             fs.delete(doc["file_id"])
     db.drop_collection(fcname)
     return True
Exemplo n.º 2
0
def update_project():
    data_dict = request.json
    try:
        tspec_dict = data_dict["tablespec_dict"]
        mainwindow_instances[data_dict['main_id']].hidden_columns_list = data_dict["hidden_columns_list"]
        mainwindow_instances[data_dict['main_id']].console_html = data_dict["console_html"]
        mainwindow_instances[data_dict['main_id']].loaded_modules = list(loaded_user_modules[current_user.username])
        for (dname, spec) in tspec_dict.items():
            mainwindow_instances[data_dict['main_id']].doc_dict[dname].table_spec = spec
        project_dict = mainwindow_instances[data_dict['main_id']].compile_save_dict()
        pname = project_dict["project_name"]
        mainwindow_instances[data_dict['main_id']].mdata["updated"] = datetime.datetime.today()

        new_file_id = fs.put(Binary(cPickle.dumps(project_dict)))

        # Here we are trying to deal with both old-style and new-style saves
        # If it appears the project was saved old-style, then we'll delete and recreate it.
        save_dict = db[current_user.project_collection_name].find_one({"project_name": pname})
        if "file_id" in save_dict:
            fs.delete(save_dict["file_id"])
            save_dict["project_name"] = pname
            save_dict["metadata"] = mainwindow_instances[data_dict['main_id']].mdata
            save_dict["file_id"] = new_file_id
            db[current_user.project_collection_name].update_one({"project_name": pname},
                                                    {'$set': save_dict})
        else:
            db[current_user.project_collection_name].delete_one({"project_name": pname})
            save_dict = {}
            save_dict["project_name"] = pname
            save_dict["metadata"] = mainwindow_instances[data_dict['main_id']].mdata
            save_dict["file_id"] = new_file_id
            db[current_user.project_collection_name].insert_one(save_dict)

        return jsonify({"success": True, "message": "Project Successfully Saved"})
    except:
        mainwindow_instances[data_dict['main_id']].handle_exception("Error saving project")
        return jsonify({"success": False})
Exemplo n.º 3
0
 def remove_project(self, project_name):
     save_dict = db[self.project_collection_name].find_one({"project_name": project_name})
     if "file_id" in save_dict:
         fs.delete(save_dict["file_id"])
     db[self.project_collection_name].delete_one({"project_name": project_name})
     return