You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.9 KiB
97 lines
3.9 KiB
import requests
|
|
import json
|
|
from calculate.core.server.func import MethodsInterface
|
|
from .datavars import DataVarsTaiga
|
|
|
|
|
|
class TaigaConnectionError(Exception):
|
|
"Failed to connect to taiga"
|
|
|
|
|
|
class Taiga(MethodsInterface):
|
|
def test(self):
|
|
return True
|
|
|
|
def check_connection(self, server_url):
|
|
#try:
|
|
resp = requests.get(server_url)
|
|
if resp.status_code in range(200, 300):
|
|
self.printSUCCESS("Connected to taiga")
|
|
return True
|
|
#except:
|
|
#raise TaigaConnectionError('Connection failed')
|
|
|
|
def create_user(self, server_url):
|
|
var = self.clVars.Get
|
|
resp = requests.post(f"{server_url}/service_taiga/create_user", json={"login": var('cl_taiga_user_login'),
|
|
"template": var('cl_taiga_user_template'),
|
|
"add_roles": var('cl_taiga_add_roles')})
|
|
if resp.status_code in range(200, 300):
|
|
self.printSUCCESS("Connected to taiga")
|
|
return True
|
|
raise TaigaConnectionError(json.loads(resp.text)['status'])
|
|
|
|
def delete_user(self, server_url):
|
|
users = self.clVars.Get('cl_taiga_users_login')
|
|
resp = requests.post(f"{server_url}/service_taiga/delete_user", json={'users': users})
|
|
return True
|
|
|
|
def change_user(self, server_url):
|
|
var = self.clVars.Get
|
|
user = var()
|
|
|
|
def create_template(self, server_url):
|
|
var = self.clVars.Get
|
|
name = var('cl_taiga_template_name')
|
|
roles = var('cl_taiga_role_list')
|
|
resp = requests.post(f"{server_url}/service_taiga/create_template", json={'name': name,
|
|
"roles": roles})
|
|
return True
|
|
|
|
def show_template_table(self, server_url):
|
|
var = self.clVars.Get
|
|
templates = var('cl_taiga_all_templates')
|
|
templates = [(x, ', '.join(y)) for x, y in templates]
|
|
self.printTable('test', ['template name', 'template roles'], templates,
|
|
fields=['cl_taiga_templates_names', ''],
|
|
onClick="detailed_role_table",
|
|
addAction='create_template')
|
|
return True
|
|
|
|
def delete_template(self, server_url):
|
|
var = self.clVars.Get
|
|
template_name = var('cl_taiga_templates_names')
|
|
resp = requests.post(f"{server_url}/service_taiga/delete_template", json={"template": template_name})
|
|
return True
|
|
|
|
def update_data(self, server_url):
|
|
upd_projects = requests.get(f"{server_url}/service_taiga/update_projects")
|
|
upd_roles = requests.get(f"{server_url}/service_taiga/update_roles")
|
|
upd_users = requests.get(f"{server_url}/service_taiga/update_users")
|
|
return True
|
|
|
|
def change_template(self, server_url):
|
|
var = self.clVars.Get
|
|
template_name = var('cl_taiga_templates_names')
|
|
template_roles = var('cl_taiga_templates_roles')
|
|
resp = requests.post(f"{server_url}/service_taiga/change_template",
|
|
json={"template": template_name, "roles": template_roles})
|
|
return True
|
|
|
|
def show_user_table(self, server_url):
|
|
var = self.clVars.Get
|
|
users = [(x['full_name'], x['template'], x['extra_projects']) for x in var('cl_taiga_all_users')]
|
|
self.printTable('users', ['fio', 'user template', 'additional projects'], sorted(users),
|
|
fields=['cl_taiga_add_roles', ''],
|
|
addAction='create_user',
|
|
onClick='change_user')
|
|
return True
|
|
|
|
def change_user(self, server_url):
|
|
var = self.clVars.Get
|
|
user = var('cl_taiga_change_login')
|
|
roles = var('cl_taiga_add_roles')
|
|
resp = requests.post(f"{server_url}/service_taiga/change_user", json={"login": user, "roles": roles})
|
|
return True
|
|
|