示例#1
0
    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
示例#2
0
    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
示例#3
0
    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))
示例#4
0
 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)
示例#6
0
    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
示例#7
0
    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