def create_default_application(self, name, code): from pykintone.application_settings.administrator import Administrator from pykintone.application_settings.view import View import pykintone.application_settings.form_field as ff result = None with Administrator(self.service.account) as admin: # create application result = admin.create_application(name) # create form fields = [ ff.BaseFormField.create("SINGLE_LINE_TEXT", "subject", "件名"), ff.BaseFormField.create("MULTI_LINE_TEXT", "body", "メッセージ"), ff.BaseFormField.create("SINGLE_LINE_TEXT", "from_address", "報告者"), ff.BaseFormField.create("FILE", "attached_files", "添付ファイル") ] update_form = admin.form().add(fields) # create view view = View.create("一覧", ["subject", "from_address"]) update_view = admin.view().update(view) if result.ok and update_form.ok and update_view.ok: admin._cached_changes = True else: raise Exception("Error is occurred when creating default application") if result.ok: app = self.service.app(result.app_id) self.register_application(app.app_id, name, code) return app else: return None
def get_kanaria(self, create_if_not_exist=False): import os from pykintone.application_settings.view import View import pykintone.application_settings.form_field as ff from pykintone.structure_field import File app = None register = lambda a: self.register_application(a.app_id, Brain.MY_NAME, Brain.MY_USER_NAME) # get from database app = self.get_application_by_code(Brain.MY_USER_NAME) # check existence if not app: infos = self.service.administration().select_app_info(name=Brain.MY_NAME).infos if len(infos) > 0: app = self.service.app(infos[0].app_id) register(app) if not app and create_if_not_exist: app_id = "" with self.service.administration() as admin: # create application created = admin.create_application(Brain.MY_NAME) app_id = created.app_id # update general information icon = File.upload(os.path.join(os.path.dirname(__file__), "./static/icon.png"), admin) set_settings = admin.general_settings().update({ "icon": { "type": "FILE", "file": { "fileKey": icon.file_key } } }) # create form fields = [ ff.BaseFormField.create("SINGLE_LINE_TEXT", "subject", "Subject"), ff.BaseFormField.create("MULTI_LINE_TEXT", "body", "MessageBody"), ff.BaseFormField.create("SINGLE_LINE_TEXT", "from_address", "From Address"), ff.BaseFormField.create("SINGLE_LINE_TEXT", "to_address", "To Address"), ff.BaseFormField.create("FILE", "attached_files", "Attached Files") ] add_fields = admin.form().add(fields) # create view view = View.create("LetterList", fields) add_views = admin.view().update(view) if set_settings.ok and add_fields.ok and add_views.ok: admin._cached_changes = True else: raise Exception("Error is occurred when creating kanaria application") app = self.service.app(app_id) register(app) return app
def test_update_views(self): ks = pykintone.load(envs.FILE_PATH) view_api = ks.app(self.TEST_APP.app_id).administration().view() view_name = "test_view" codes = FormAPI.gather_codes(self._default_form()) views = View.create(view_name, codes[1:]) # add views add_result = view_api.update(views) self.assertTrue(add_result.ok) v_def = view_api.get(preview=True).views self.assertEqual(1, len(v_def)) # update fields views = [View.create(view_name, codes), View.create("another_view", codes, index=2)] update_result = view_api.update(views, revision=add_result.revision) self.assertTrue(update_result.ok) v_def = view_api.get(preview=True).views self.assertEqual(2, len(v_def)) original = [v for v in v_def if v.name == view_name][0] self.assertEqual(len(codes), len(original.fields))
def __init__(self, response): super(GetViewResult, self).__init__(response) self.raw = {} self.revision = -1 self.views = [] if self.ok: serialized = response.json() if "views" in serialized: self.revision = int(serialized["revision"]) self.raw = serialized["views"] from pykintone.application_settings.view import View for k in self.raw: v = View.deserialize(self.raw[k]) self.views.append(v)
def test_create_application(self): kintone = pykintone.load(envs.FILE_PATH) with kintone.administration().transaction() as admin: # create application created = admin.create_application("my_application") # create form f1 = ff.BaseFormField.create("SINGLE_LINE_TEXT", "title", "Title") f2 = ff.BaseFormField.create("MULTI_LINE_TEXT", "description", "Desc") admin.form().add([f1, f2]) # create view view = View.create("mylist", ["title", "description"]) admin.view().update(view)
def create_default_application(self, name, code): from pykintone.application_settings.administrator import Administrator from pykintone.application_settings.view import View import pykintone.application_settings.form_field as ff result = None with Administrator(self.service.account) as admin: # create application result = admin.create_application(name) # create form fields = [ ff.BaseFormField.create("SINGLE_LINE_TEXT", "subject", "件名"), ff.BaseFormField.create("MULTI_LINE_TEXT", "body", "メッセージ"), ff.BaseFormField.create("SINGLE_LINE_TEXT", "from_address", "報告者"), ff.BaseFormField.create("FILE", "attached_files", "添付ファイル") ] update_form = admin.form().add(fields) # create view view = View.create("一覧", ["subject", "from_address"]) update_view = admin.view().update(view) if result.ok and update_form.ok and update_view.ok: admin._cached_changes = True else: raise Exception( "Error is occurred when creating default application") if result.ok: app = self.service.app(result.app_id) self.register_application(app.app_id, name, code) return app else: return None
def get_kanaria(self, create_if_not_exist=False): import os from pykintone.application_settings.view import View import pykintone.application_settings.form_field as ff from pykintone.structure_field import File app = None register = lambda a: self.register_application(a.app_id, Brain.MY_NAME, Brain.MY_USER_NAME) # get from database app = self.get_application_by_code(Brain.MY_USER_NAME) # check existence if not app: infos = self.service.administration().select_app_info( name=Brain.MY_NAME).infos if len(infos) > 0: app = self.service.app(infos[0].app_id) register(app) if not app and create_if_not_exist: app_id = "" with self.service.administration() as admin: # create application created = admin.create_application(Brain.MY_NAME) app_id = created.app_id # update general information icon = File.upload( os.path.join(os.path.dirname(__file__), "./static/icon.png"), admin) set_settings = admin.general_settings().update({ "icon": { "type": "FILE", "file": { "fileKey": icon.file_key } } }) # create form fields = [ ff.BaseFormField.create("SINGLE_LINE_TEXT", "subject", "Subject"), ff.BaseFormField.create("MULTI_LINE_TEXT", "body", "MessageBody"), ff.BaseFormField.create("SINGLE_LINE_TEXT", "from_address", "From Address"), ff.BaseFormField.create("SINGLE_LINE_TEXT", "to_address", "To Address"), ff.BaseFormField.create("FILE", "attached_files", "Attached Files") ] add_fields = admin.form().add(fields) # create view view = View.create("LetterList", fields) add_views = admin.view().update(view) if set_settings.ok and add_fields.ok and add_views.ok: admin._cached_changes = True else: raise Exception( "Error is occurred when creating kanaria application") app = self.service.app(app_id) register(app) return app