|
@@ -17,7 +17,8 @@ from api.utils.odoo_api import (
|
|
|
remove_database_seed,
|
|
|
create_odoo_container,
|
|
|
apply_permissions,
|
|
|
- get_odoo_internal_ip
|
|
|
+ get_odoo_internal_ip,
|
|
|
+ install_module
|
|
|
)
|
|
|
from api.utils.jwt_token import get_user
|
|
|
from api.utils.jwt_authentication import JWTAuthentication
|
|
@@ -39,6 +40,7 @@ class OdooResource(Resource):
|
|
|
def prepend_urls(self):
|
|
|
return [
|
|
|
url(r'^(?P<resource_name>%s)/create%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('odoo_create'), name='api_odoo_create'),
|
|
|
+ url(r'^(?P<resource_name>%s)/install_module%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('install_odoo_module'), name='api_install_odoo_module'),
|
|
|
]
|
|
|
|
|
|
'''
|
|
@@ -249,4 +251,37 @@ class OdooResource(Resource):
|
|
|
'ip': settings.EXTERNAL_IP,
|
|
|
'port': port
|
|
|
}
|
|
|
- })
|
|
|
+ })
|
|
|
+
|
|
|
+ '''
|
|
|
+ '''
|
|
|
+ def install_odoo_module(self, request, **kwargs):
|
|
|
+ self.method_check(request, allowed='post')
|
|
|
+
|
|
|
+ err = {'error_message': None}
|
|
|
+ data = None
|
|
|
+
|
|
|
+ try:
|
|
|
+ data = json.loads(request.body)
|
|
|
+ except JSONDecodeError:
|
|
|
+ error('json decode error')
|
|
|
+
|
|
|
+ if not data:
|
|
|
+ err['error_message'] = 'cannot parse request body'
|
|
|
+
|
|
|
+ if data and (not 'system' in data or not 'module' in data):
|
|
|
+ err['error_message'] = 'module and system name is required'
|
|
|
+
|
|
|
+ result = install_module(data.get('system', None), data.get('module', None))
|
|
|
+
|
|
|
+ if 'error' in result:
|
|
|
+ err['error_message'] = result['error']
|
|
|
+
|
|
|
+ return self.create_response(request, {
|
|
|
+ 'result': ''
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|