--- a/src/catedit/resources.py Tue Apr 14 12:58:54 2015 +0200
+++ b/src/catedit/resources.py Fri Apr 10 17:46:38 2015 +0200
@@ -100,30 +100,30 @@
if cat_manager_instance.persistence.session_compliant is True:
task=submit_changes.apply_async(
kwargs={
- "deleted_categories" : session.get(
+ "deleted_categories" : session.setdefault(
"deleted_categories", {}
- ).get(repository, {}),
- "modified_categories" : session.get(
+ ).setdefault(repository, {}),
+ "modified_categories" : session.setdefault(
"modified_categories", {}
- ).get(repository, {}),
+ ).setdefault(repository, {}),
"message" : args["commit_message"],
"repository" : repository,
- "token" : session["user_code"]
+ "token" : session.get("user_code")
},
queue="repo_"+repository,
routing_key="task_for_"+repository
)
session.setdefault("tasks", {}).setdefault(repository, []).append(task.id)
- session["deleted_categories"][repository] = {}
- session["modified_categories"][repository] = {}
+ session.setdefault("deleted_categories", {})[repository] = {}
+ session.setdefault("modified_categories", {})[repository] = {}
cache.clear()
return 204
else:
# is the edition occuring on an already modified category?
- if (cat_id in session.get(
+ if (cat_id in session.setdefault(
"modified_categories", {}
- ).get(repository, {}).keys()):
+ ).setdefault(repository, {}).keys()):
cat_graph = Graph()
cat_graph.parse(
source=StringIO(
@@ -137,7 +137,7 @@
new_property_list=[]
for (predicate, obj) in cat_data["properties"]:
- if session["properties"][repository][predicate]["object_type"] == "uriref-category":
+ if session["properties"][repository].get(predicate, {}).get("object_type") == "uriref-category":
new_property_list.append(
(URIRef(session["properties"][repository][predicate]["rdflib_class"]), app.config["CATEGORY_NAMESPACE"][obj])
)
@@ -154,15 +154,15 @@
new_label=cat_data["label"],
new_other_properties=new_property_list)
- session["modified_categories"][repository][cat.cat_id] = str(
+ session.setdefault("modified_categories", {}).setdefault(repository, {})[cat.cat_id] = str(
cat.cat_graph.serialize(format="turtle"), "utf-8"
)
# Now we must clean the deleted categories list in case the
# modified category was deleted before being edited
- session["deleted_categories"][repository] = {
+ session.setdefault("deleted_categories", {})[repository] = {
cat_name: cat_content for cat_name, cat_content
- in session["deleted_categories"][repository].items()
+ in session.setdefault("deleted_categories", {}).setdefault(repository, {}).items()
if cat_name != cat.cat_id
}
logger.debug("put id: "+cat.cat_id)
@@ -184,11 +184,11 @@
"""
property_list = []
for (predicate, obj) in cat_data["properties"]:
- if session["properties"][repository][predicate]["object_type"] == "uriref-category": # faire des get
+ if session["properties"][repository].get(predicate, {}).get("object_type", "") == "uriref-category": # faire des get
property_list.append(
(URIRef(session["properties"][repository][predicate]["rdflib_class"]), app.config["CATEGORY_NAMESPACE"][obj])
)
- elif session["properties"][repository][predicate]["object_type"] == "uriref-link":
+ elif session["properties"][repository].get(predicate, {}).get("object_type", "") == "uriref-link":
property_list.append(
(URIRef(session["properties"][repository][predicate]["rdflib_class"]), URIRef(obj))
)
@@ -205,8 +205,8 @@
- if cat.cat_id not in session["modified_categories"][repository].keys():
- session["modified_categories"][repository][cat.cat_id] = str(
+ if cat.cat_id not in session.setdefault("modified_categories", {}).setdefault(repository, {}):
+ session.setdefault("modified_categories", {}).setdefault(repository, {})[cat.cat_id] = str(
cat.cat_graph.serialize(format="turtle"), "utf-8"
)
@@ -221,8 +221,8 @@
deletion list
"""
# if cat_id is already in deleted categories, we restore it
- if deleted_cat_id in session["deleted_categories"][repository].keys():
- session["deleted_categories"][repository] = {
+ if deleted_cat_id in session.setdefault("deleted_categories", {}).setdefault(repository, {}):
+ session.setdefault("deleted_categories", {})[repository] = {
cat_name: cat_content for cat_name, cat_content
in session["deleted_categories"][repository].items()
if cat_name != deleted_cat_id
@@ -230,9 +230,7 @@
# warning, not safe if 2 files share the same name (or category id)
# but that shouldn't happen
else:
- session["deleted_categories"] \
- [repository] \
- [deleted_cat_id] = "deleted"
+ session.setdefault("deleted_categories", {}).setdefault(repository, {})[deleted_cat_id] = "deleted"
# Maybe we can store something more useful in there, such as
# category content when deleted to restore last edit?
# It would be nice to have symetry between modified and
@@ -240,7 +238,7 @@
# now we must clean the modified categories list in case the
# deleted category was modified before
- session["modified_categories"][repository] = {
+ session.setdefault("modified_categories", {})[repository] = {
cat_name: cat_content for cat_name, cat_content
in session["modified_categories"][repository].items()
if cat_name != deleted_cat_id
@@ -263,14 +261,13 @@
cat_list = cat_manager_instance.list_categories()
# first we edit what was already modified before the deletion
logger.debug(
- session.get("modified_categories", {}).get(repository, {})
+ session.setdefault("modified_categories", {}).setdefault(repository, {})
)
if (
- deleted_cat_id in
- session["deleted_categories"][repository].keys()
+ deleted_cat_id in session.setdefault("deleted_categories", {}).setdefault(repository, {})
):
- for element in session.get("modified_categories", {}) \
- .get(repository, {}).keys():
+ for element in session.setdefault("modified_categories", {}) \
+ .setdefault(repository, {}):
logger.debug(str(element))
modified_cat_graph = Graph()
modified_cat_graph.parse(
@@ -310,10 +307,8 @@
# category
for cat in cat_list:
if (cat.cat_id not in (
- list(session["modified_categories"]
- [repository].keys())
- + list(session["deleted_categories"]
- [repository].keys())
+ list(session.setdefault("modified_categories", {}).setdefault(repository, {}).keys())
+ + list(session.setdefault("deleted_categories", {}).setdefault(repository, {}).keys())
)):
new_property_list = []
for (predicate, obj) in cat.properties:
@@ -332,9 +327,7 @@
cat.edit_category(
new_other_properties=new_property_list
)
- session["modified_categories"] \
- [repository] \
- [cat.cat_id] = str(
+ session.setdefault("modified_categories", {}).setdefault(repository, {})[cat.cat_id] = str(
cat.cat_graph.serialize(format="turtle"),
"utf-8"
)
@@ -361,14 +354,14 @@
if modified_cat_id is None:
return {
- "modified_categories": session.get("modified_categories", {})
- .get(repository, {}),
- "deleted_categories": session.get("deleted_categories", {})
- .get(repository, {})
+ "modified_categories": session.setdefault("modified_categories", {})
+ .setdefault(repository, {}),
+ "deleted_categories": session.setdefault("deleted_categories", {})
+ .setdefault(repository, {})
}, 200
else:
- if modified_cat_id in session.get("modified_categories", {}) \
- .get(repository, {}):
+ if modified_cat_id in session.setdefault("modified_categories", {}) \
+ .setdefault(repository, {}):
return {
"type": "modified",
"category": {
@@ -377,8 +370,8 @@
[modified_cat_id]
}
}, 200
- if modified_cat_id in session.get("deleted_categories", {}) \
- .get(repository, {}):
+ if modified_cat_id in session.setdefault("deleted_categories", {}) \
+ .setdefault(repository, {}):
return {
"type": "deleted",
"category": {
@@ -398,17 +391,17 @@
is None, delete the whole changelist
"""
if modified_cat_id is not None:
- session["modified_categories"][repository] = {
+ session.setdefault("modified_categories", {})[repository] = {
cat_name: cat_content for cat_name, cat_content
- in session["modified_categories"][repository].items()
+ in session.setdefault("modified_categories", {}).setdefault(repository, {}).items()
if cat_name != modified_cat_id
}
- session["deleted_categories"][repository] = {
+ session.setdefault("deleted_categories", {})[repository] = {
cat_name: cat_content for cat_name, cat_content
- in session["deleted_categories"][repository].items()
+ in session.setdefault("deleted_categories", {}).setdefault(repository, {}).items()
if cat_name != modified_cat_id
}
else:
- session["modified_categories"][repository] = {}
- session["deleted_categories"][repository] = {}
+ session.setdefault("modified_categories", {})[repository] = {}
+ session.setdefault("deleted_categories", {})[repository] = {}
return 204