parent
8c43246100
commit
9452e3d622
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,19 @@
|
||||
__app__ = 'calculate-taiga'
|
||||
__version__ = '3.4.1'
|
||||
|
||||
import sys
|
||||
from calculate.lib.datavars import DataVars
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
|
||||
setLocalTranslate('cl_update3', sys.modules[__name__])
|
||||
|
||||
|
||||
class DataVarsTaiga(DataVars):
|
||||
"""Variable class for installation"""
|
||||
|
||||
def importInstall(self, **args):
|
||||
"""Import install variables"""
|
||||
self.importVariables()
|
||||
self.importVariables('calculate.taiga.variables')
|
||||
self.defaultModule = "taiga"
|
@ -0,0 +1,76 @@
|
||||
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_all_users')
|
||||
resp = requests.post(f"{server_url}/service_taiga/delete_user", json={'users': users})
|
||||
return True
|
||||
|
||||
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]
|
||||
#a = var('cl_taiga_templates_roles')
|
||||
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
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,149 @@
|
||||
import sys
|
||||
|
||||
from calculate.core.server.func import Action, Tasks, AllTasks
|
||||
from calculate.lib.cl_lang import setLocalTranslate, getLazyLocalTranslate
|
||||
from ..taiga import TaigaConnectionError
|
||||
|
||||
|
||||
_ = lambda x: x
|
||||
setLocalTranslate('cl_update3', sys.modules[__name__])
|
||||
__ = getLazyLocalTranslate(_)
|
||||
|
||||
|
||||
class ClTaigaCreateUser(Action):
|
||||
"""
|
||||
Действие обновление конфигурационных файлов
|
||||
"""
|
||||
# ошибки, которые отображаются без подробностей
|
||||
native_error = (TaigaConnectionError)
|
||||
|
||||
successMessage = "Created"
|
||||
failedMessage = "Not created"
|
||||
interruptMessage = __("Update manually interrupted")
|
||||
|
||||
tasks = [
|
||||
# {'name': 'connection',
|
||||
# 'method': 'Taiga.check_connection(cl_taiga_server_url)',
|
||||
# 'message': 'Checking connection'},
|
||||
{'name': 'sending_request',
|
||||
'method': 'Taiga.create_user(cl_taiga_server_url)',
|
||||
'message': 'Creating user-add task'}
|
||||
]
|
||||
|
||||
|
||||
class ClTaigaDeleteUser(Action):
|
||||
"""
|
||||
Действие обновление конфигурационных файлов
|
||||
"""
|
||||
# ошибки, которые отображаются без подробностей
|
||||
native_error = (TaigaConnectionError)
|
||||
|
||||
successMessage = None
|
||||
failedMessage = None
|
||||
interruptMessage = __("Update manually interrupted")
|
||||
|
||||
tasks = [
|
||||
{'name': 'connection',
|
||||
'method': 'Taiga.check_connection(cl_taiga_server_url)',
|
||||
'message': 'Checking connection'},
|
||||
{'name': 'sending_request',
|
||||
'method': 'Taiga.delete_user(cl_taiga_server_url)',
|
||||
'message': 'Creating user-del task'}
|
||||
]
|
||||
|
||||
|
||||
class ClTaigaUpdateData(Action):
|
||||
"""
|
||||
Действие обновление конфигурационных файлов
|
||||
"""
|
||||
# ошибки, которые отображаются без подробностей
|
||||
native_error = (TaigaConnectionError)
|
||||
|
||||
successMessage = None
|
||||
failedMessage = None
|
||||
interruptMessage = __("Update manually interrupted")
|
||||
|
||||
tasks = [
|
||||
{'name': 'connection',
|
||||
'method': 'Taiga.check_connection(cl_taiga_server_url)',
|
||||
'message': 'Checking connection'},
|
||||
{'name': 'sending_request',
|
||||
'method': 'Taiga.update_data(cl_taiga_server_url)',
|
||||
'message': 'Creating update task'}
|
||||
]
|
||||
|
||||
class ClTaigaCreateTemplate(Action):
|
||||
"""
|
||||
Действие обновление конфигурационных файлов
|
||||
"""
|
||||
# ошибки, которые отображаются без подробностей
|
||||
native_error = (TaigaConnectionError)
|
||||
|
||||
successMessage = None
|
||||
failedMessage = None
|
||||
interruptMessage = __("Update manually interrupted")
|
||||
|
||||
tasks = [
|
||||
{'name': 'connection',
|
||||
'method': 'Taiga.check_connection(cl_taiga_server_url)',
|
||||
'message': 'Checking connection'},
|
||||
{'name': 'sending_request',
|
||||
'method': 'Taiga.create_template(cl_taiga_server_url)',
|
||||
'message': 'Creating update task'}
|
||||
]
|
||||
|
||||
class ClTaigaTestTable(Action):
|
||||
"""
|
||||
Действие обновление конфигурационных файлов
|
||||
"""
|
||||
# ошибки, которые отображаются без подробностей
|
||||
native_error = (TaigaConnectionError)
|
||||
|
||||
successMessage = "Created"
|
||||
failedMessage = "Not created"
|
||||
interruptMessage = __("Update manually interrupted")
|
||||
|
||||
tasks = [
|
||||
{'name': 'view_table',
|
||||
'method': 'Taiga.show_template_table(cl_taiga_server_url)'}
|
||||
]
|
||||
|
||||
class ClTaigaDeleteFromTable(Action):
|
||||
"""
|
||||
Действие обновление конфигурационных файлов
|
||||
"""
|
||||
# ошибки, которые отображаются без подробностей
|
||||
native_error = (TaigaConnectionError)
|
||||
|
||||
successMessage = "Created"
|
||||
failedMessage = "Not created"
|
||||
interruptMessage = __("Update manually interrupted")
|
||||
|
||||
tasks = [
|
||||
{'name': 'connection',
|
||||
'method': 'Taiga.check_connection(cl_taiga_server_url)',
|
||||
'message': 'Checking connection'},
|
||||
{'name': 'sending_request',
|
||||
'method': 'Taiga.delete_template(cl_taiga_server_url)',
|
||||
'message': 'Creating delete task'}
|
||||
]
|
||||
|
||||
class ClTaigaChangeTable(Action):
|
||||
"""
|
||||
Действие обновление конфигурационных файлов
|
||||
"""
|
||||
# ошибки, которые отображаются без подробностей
|
||||
native_error = (TaigaConnectionError)
|
||||
|
||||
successMessage = "Created"
|
||||
failedMessage = "Not created"
|
||||
interruptMessage = __("Update manually interrupted")
|
||||
|
||||
tasks = [
|
||||
{'name': 'connection',
|
||||
'method': 'Taiga.check_connection(cl_taiga_server_url)',
|
||||
'message': 'Checking connection'},
|
||||
{'name': 'sending_request',
|
||||
'method': 'Taiga.change_template(cl_taiga_server_url)',
|
||||
'message': 'Creating delete task'}
|
||||
]
|
@ -0,0 +1,2 @@
|
||||
from . import taiga
|
||||
section = "taiga"
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
['1', '2', '3', '21', '32', '34', '35', '37', '38', '39', '40', '167', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '168', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100', '101', '102', '109', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119', '120', '121', '122', '123', '124', '125', '126', '127', '128', '129', '130', '131', '132', '133', '134', '135', '136', '137', '138', '139', '140', '142', '143', '144', '145', '146', '169', '148', '149', '150', '151', '152', '153', '154', '155', '156', '157', '158', '159', '160', '161', '162', '4', '5', '6', '7', '8', '9', '10', '163', '12', '13', '14', '141', '15', '16', '17', '18', '19', '20', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '33', '36', '103', '104', '105', '106', '107', '108']
|
@ -0,0 +1,285 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2010-2016 Mir Calculate. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
import sys
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate, getLazyLocalTranslate
|
||||
from calculate.core.server.func import WsdlBase
|
||||
from .taiga import Taiga
|
||||
from .utils.cl_taiga import ClTaigaCreateUser, ClTaigaDeleteUser, ClTaigaUpdateData, ClTaigaCreateTemplate, ClTaigaTestTable, ClTaigaDeleteFromTable, ClTaigaChangeTable
|
||||
|
||||
|
||||
_ = lambda x: x
|
||||
setLocalTranslate('cl_update3', sys.modules[__name__])
|
||||
__ = getLazyLocalTranslate(_)
|
||||
|
||||
|
||||
class Wsdl(WsdlBase):
|
||||
methods = [
|
||||
{
|
||||
# идентификатор метода
|
||||
'method_name': "create_user",
|
||||
# категория метода
|
||||
'category': __('Taiga'),
|
||||
# заголовок метода
|
||||
'title': __("Create taiga user"),
|
||||
# иконка для графической консоли
|
||||
'image': 'calculate-update',
|
||||
# метод присутствует в графической консоли
|
||||
'gui': True,
|
||||
# консольная команда
|
||||
'command': 'cl-taiga-create-user',
|
||||
# права для запуска метода
|
||||
'rights': ['taiga'],
|
||||
# объект содержащий модули для действия
|
||||
'logic': {'Taiga': Taiga},
|
||||
# описание действия
|
||||
'action': ClTaigaCreateUser,
|
||||
# объект переменных
|
||||
'datavars': "taiga",
|
||||
'native_error': (),
|
||||
# значения по умолчанию для переменных этого метода
|
||||
'setvars': {},
|
||||
# описание груп (список лямбда функций)
|
||||
'groups': [
|
||||
lambda group: group(_("Create user"),
|
||||
normal=('cl_taiga_user_login',
|
||||
'cl_taiga_user_template',
|
||||
'cl_taiga_add_roles'),
|
||||
next_label=_("Save"))]
|
||||
},
|
||||
{
|
||||
# идентификатор метода
|
||||
'method_name': "delete_users",
|
||||
# категория метода
|
||||
'category': __('Taiga'),
|
||||
# заголовок метода
|
||||
'title': __("Delete taiga user"),
|
||||
# иконка для графической консоли
|
||||
'image': 'calculate-update',
|
||||
# метод присутствует в графической консоли
|
||||
'gui': True,
|
||||
# консольная команда
|
||||
'command': 'cl-taiga-delete-user',
|
||||
# права для запуска метода
|
||||
'rights': ['taiga'],
|
||||
# объект содержащий модули для действия
|
||||
'logic': {'Taiga': Taiga},
|
||||
# описание действия
|
||||
'action': ClTaigaDeleteUser,
|
||||
# объект переменных
|
||||
'datavars': "taiga",
|
||||
'native_error': (),
|
||||
# значения по умолчанию для переменных этого метода
|
||||
'setvars': {},
|
||||
# описание груп (список лямбда функций)
|
||||
'groups': [
|
||||
lambda group: group(_("Show user"),
|
||||
normal=('cl_taiga_all_users',),
|
||||
next_label=_("Save"))]
|
||||
},
|
||||
{
|
||||
# идентификатор метода
|
||||
'method_name': "update_data",
|
||||
# категория метода
|
||||
'category': __('Taiga'),
|
||||
# заголовок метода
|
||||
'title': __("Update taiga data"),
|
||||
# иконка для графической консоли
|
||||
'image': 'calculate-update',
|
||||
# метод присутствует в графической консоли
|
||||
'gui': True,
|
||||
# консольная команда
|
||||
'command': 'cl-taiga-update',
|
||||
# права для запуска метода
|
||||
'rights': ['taiga'],
|
||||
# объект содержащий модули для действия
|
||||
'logic': {'Taiga': Taiga},
|
||||
# описание действия
|
||||
'action': ClTaigaUpdateData,
|
||||
# объект переменных
|
||||
'datavars': "taiga",
|
||||
'native_error': (),
|
||||
# значения по умолчанию для переменных этого метода
|
||||
'setvars': {},
|
||||
# описание груп (список лямбда функций)
|
||||
'groups': []
|
||||
},
|
||||
{
|
||||
# идентификатор метода
|
||||
'method_name': "create_template",
|
||||
# категория метода
|
||||
#'category': __('Taiga'),
|
||||
# заголовок метода
|
||||
'title': __("Create taiga template"),
|
||||
# иконка для графической консоли
|
||||
'image': 'calculate-update',
|
||||
# метод присутствует в графической консоли
|
||||
'gui': True,
|
||||
# консольная команда
|
||||
'command': 'cl-taiga-create-template',
|
||||
# права для запуска метода
|
||||
'rights': ['taiga'],
|
||||
# объект содержащий модули для действия
|
||||
'logic': {'Taiga': Taiga},
|
||||
# описание действия
|
||||
'action': ClTaigaCreateTemplate,
|
||||
# объект переменных
|
||||
'datavars': "taiga",
|
||||
'native_error': (),
|
||||
# значения по умолчанию для переменных этого метода
|
||||
'setvars': {},
|
||||
# описание груп (список лямбда функций)
|
||||
'groups': [
|
||||
lambda group: group(_("Show user"),
|
||||
normal=('cl_taiga_template_name',
|
||||
'cl_taiga_role_list',),
|
||||
next_label=_("Save"))]
|
||||
},
|
||||
{
|
||||
# идентификатор метода
|
||||
'method_name': "role_table",
|
||||
# категория метода
|
||||
'category': __('Taiga'),
|
||||
# заголовок метода
|
||||
'title': __("show taiga table"),
|
||||
# иконка для графической консоли
|
||||
'image': 'calculate-update',
|
||||
# метод присутствует в графической консоли
|
||||
'gui': True,
|
||||
# консольная команда
|
||||
'command': 'cl-taiga-test-table',
|
||||
# права для запуска метода
|
||||
'rights': ['taiga'],
|
||||
# объект содержащий модули для действия
|
||||
'logic': {'Taiga': Taiga},
|
||||
# описание действия
|
||||
'action': ClTaigaTestTable,
|
||||
# объект переменных
|
||||
'datavars': "taiga",
|
||||
'native_error': (),
|
||||
# значения по умолчанию для переменных этого метода
|
||||
'setvars': {},
|
||||
# описание груп (список лямбда функций)
|
||||
'groups': []
|
||||
},
|
||||
{
|
||||
# идентификатор метода
|
||||
'method_name': "detailed_role_table",
|
||||
# категория метода
|
||||
#'category': __('Taiga'),
|
||||
# заголовок метода
|
||||
'title': __("detailed taiga table"),
|
||||
# иконка для графической консоли
|
||||
'image': None,
|
||||
# метод присутствует в графической консоли
|
||||
'gui': True,
|
||||
# консольная команда
|
||||
#'command': 'cl-taiga-test-table',
|
||||
# права для запуска метода
|
||||
'rights': ['taiga'],
|
||||
# объект содержащий модули для действия
|
||||
'logic': {},
|
||||
# описание действия
|
||||
'action': None,
|
||||
# объект переменных
|
||||
'datavars': "taiga",
|
||||
'native_error': (),
|
||||
# значения по умолчанию для переменных этого метода
|
||||
'setvars': {},
|
||||
# описание груп (список лямбда функций)
|
||||
'groups': [
|
||||
lambda group: group(_("Table details"),
|
||||
normal=(
|
||||
'cl_taiga_templates_names',
|
||||
'cl_taiga_templates_roles'),
|
||||
custom_buttons=[('but0', _("Back"),
|
||||
"role_table",
|
||||
"button"),
|
||||
('but1', _("Delete"),
|
||||
"delete_template_table",
|
||||
"button"),
|
||||
('but2', _("Change"),
|
||||
"change_template_table",
|
||||
"button")
|
||||
])
|
||||
]
|
||||
},
|
||||
{
|
||||
# идентификатор метода
|
||||
'method_name': "delete_template_table",
|
||||
# категория метода
|
||||
#'category': __('Taiga'),
|
||||
# заголовок метода
|
||||
'title': __("delete taiga table"),
|
||||
# иконка для графической консоли
|
||||
'image': None,
|
||||
# метод присутствует в графической консоли
|
||||
'gui': True,
|
||||
# консольная команда
|
||||
# 'command': 'cl-taiga-test-table',
|
||||
# права для запуска метода
|
||||
'rights': ['taiga'],
|
||||
# объект содержащий модули для действия
|
||||
'logic': {'Taiga': Taiga},
|
||||
# описание действия
|
||||
'action': ClTaigaDeleteFromTable,
|
||||
# объект переменных
|
||||
'datavars': "taiga",
|
||||
'native_error': (),
|
||||
# значения по умолчанию для переменных этого метода
|
||||
'setvars': {},
|
||||
# описание груп (список лямбда функций)
|
||||
'groups': [
|
||||
lambda group: group(_("Table details"),
|
||||
normal=(
|
||||
'cl_taiga_templates_names',
|
||||
'cl_taiga_templates_roles'))
|
||||
]
|
||||
},
|
||||
{
|
||||
# идентификатор метода
|
||||
'method_name': "change_template_table",
|
||||
# категория метода
|
||||
# 'category': __('Taiga'),
|
||||
# заголовок метода
|
||||
'title': __("change taiga table"),
|
||||
# иконка для графической консоли
|
||||
'image': None,
|
||||
# метод присутствует в графической консоли
|
||||
'gui': True,
|
||||
# консольная команда
|
||||
# 'command': 'cl-taiga-test-table',
|
||||
# права для запуска метода
|
||||
'rights': ['taiga'],
|
||||
# объект содержащий модули для действия
|
||||
'logic': {'Taiga': Taiga},
|
||||
# описание действия
|
||||
'action': ClTaigaChangeTable,
|
||||
# объект переменных
|
||||
'datavars': "taiga",
|
||||
'native_error': (),
|
||||
# значения по умолчанию для переменных этого метода
|
||||
'setvars': {},
|
||||
# описание груп (список лямбда функций)
|
||||
'groups': [
|
||||
lambda group: group(_("Table details"),
|
||||
normal=(
|
||||
'cl_taiga_templates_names',
|
||||
'cl_taiga_templates_roles'))
|
||||
]
|
||||
},
|
||||
]
|
||||
|
Loading…
Reference in new issue