Parcourir la source

Added a very naive model_delete for Simon

Yentl Van Tendeloo il y a 8 ans
Parent
commit
005d27ef9b
2 fichiers modifiés avec 22 ajouts et 1 suppressions
  1. 11 1
      bootstrap/core_algorithm.alc
  2. 11 0
      wrappers/modelverse.py

+ 11 - 1
bootstrap/core_algorithm.alc

@@ -1121,7 +1121,17 @@ String function cmd_model_modify(user_id : String, model_name : String):
 		return "Model not found: " + model_name!
 
 String function cmd_model_delete(user_id : String, model_name : String):
-	return "Not implemented: model_delete"!
+	String model_id
+	model_id = get_model_id(model_name)
+
+	if (model_id != ""):
+		if (allow_write(user_id, model_id)):
+			model_delete_element(core, model_id)
+			return "Success"!
+		else:
+			return "Permission denied to model: " + model_name!
+	else:
+		return "Model not found: " + model_name!
 
 String function cmd_model_list():
 	// List all models

+ 11 - 0
wrappers/modelverse.py

@@ -226,8 +226,10 @@ def model_add(model_name, metamodel_name, model_code=None):
     # raises UnknownError
     # raises PermissionDenied
     # raises CompilationError
+    global mode
     if mode != MODE_MODELLING:
         raise InvalidMode()
+
     # Do this before creating the model, as otherwise compilation errors would make us inconsistent
     if model_code is not None:
         try:
@@ -242,6 +244,15 @@ def model_add(model_name, metamodel_name, model_code=None):
     _input(compiled)
     _output("Success")
 
+def model_delete(model_name):
+    """Delete an existing model."""
+    global mode
+    if mode != MODE_MODELLING:
+        raise InvalidMode()
+
+    _input(["model_delete", model_name])
+    _handle_output("Success")
+
 def model_modify(model_name):
     """Modify an existing model."""
     # return is_write