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 post(action): ks = kintoneInterface() app = ks.service.app(action.order.app_id) app_index = ks.get_application_index(app.app_id) letter = action.order.letter() analyzer = TextAnalyzer() # get form structure layouts = app.administration().form().get_layout(app.app_id).layouts fields = [] for ly in layouts: fields += ly.fields data = analyzer.map_letter_to_field(letter, fields) # file field file_field = [f for f in fields if f.field_type == "FILE"] if len(file_field) > 0 and len(letter.attached_files) > 0: from pykintone.structure_field import File at = letter.attached_files[0] f = File.upload(at["content"], app, file_name=at["filename"]) data[file_field[0].code] = { "value": [{ "fileKey": f.file_key }] } result = app.create(data) return result, app_index
def post(action): ks = kintoneInterface() app = ks.service.app(action.order.app_id) app_index = ks.get_application_index(app.app_id) letter = action.order.letter() analyzer = TextAnalyzer() # get form structure layouts = app.administration().form().get_layout(app.app_id).layouts fields = [] for ly in layouts: fields += ly.fields data = analyzer.map_letter_to_field(letter, fields) # file field file_field = [f for f in fields if f.field_type == "FILE"] if len(file_field) > 0 and len(letter.attached_files) > 0: from pykintone.structure_field import File at = letter.attached_files[0] f = File.upload(at["content"], app, file_name=at["filename"]) data[file_field[0].code] = {"value": [{"fileKey": f.file_key}]} result = app.create(data) return result, app_index
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