def test_map_letter_to_field(self): from kanaria.core.model.letter import Letter import pykintone.application_settings.form_field as ff body = """ 本日のお仕事 11/21 今日もひたすらPythonのコードを書いた。やれやれだぜ。 もし障害が起きたら以下に連絡をください。 [email protected] 09012221312 """ letter = Letter("", body) fields = [ ff.BaseFormField.create("SINGLE_LINE_TEXT", "title", "タイトル"), ff.BaseFormField.create("MULTI_LINE_TEXT", "description", "報告内容"), ff.BaseFormField.create("DATE", "reported_date", "報告日時"), ff.BaseFormField.create("SINGLE_LINE_TEXT", "mail_address", "メールアドレス"), ff.BaseFormField.create("SINGLE_LINE_TEXT", "telephone", "電話番号"), ff.BaseFormField.create("MULTI_LINE_TEXT", "comment", "コメント") ] separator = TextAnalyzer() data = separator.map_letter_to_field(letter, fields) print(data) for n in [f.code for f in fields if f.code != "comment"]: self.assertTrue(n in data) self.assertTrue(data[n])
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