常識を揺るがす発見が、あなたの眼前に広がる。既成概念を超えた視点で紡がれるこのコンテンツは、単なる情報の羅列ではない。
思考の枠組みそのものを塗り替える鮮烈な気づきが、150文字に凝縮されている。今、あなたは新たな知の扉を開こうとしている。
さあ、好奇心のスイッチを押すときだ。この先にあるのは、きっとあなたが求めていた「何か」だろう。
- テレ東BIZの放送で、悠仁さまの授業風景が映り、視聴者の間で話題に
- 番組内で映った意外な一瞬がSNSなどを中心に拡散
- 皇室関連の報道におけるメディアの取り上げ方に注目が集まる
- 視聴者からは、皇室の日常を垣間見られる貴重な機会との声も
- テレ東BIZの放送内容が、改めて皇室報道の在り方を問うきっかけに
悠仁さまの授業風景が映ったテレ東BIZ放送の反響
2023年、テレ東BIZの放送で秋篠宮家の悠仁さまが学校の授業に参加される様子が偶然映り込み、大きな話題を呼んだ。映像では理科の実験に熱心に取り組む皇室のお姿が記録されており、「皇室の日常が垣間見える貴重な瞬間」としてSNS上で拡散された。
特に注目されたのは、顕微鏡を覗く際の真剣な表情と、周囲の生徒たちと自然に交わる様子だった。専門家によれば、「皇室成員が一般の教育環境で学ばれる姿は珍しく、国民が親近感を抱く好例」とのこと。
映像が捉えた具体的な授業内容
- 植物細胞の観察実験に参加
- グループワークでクラスメートと協力
- 教員からの質問に積極的に回答




皇室報道におけるメディアの役割と課題
テレ東BIZの事例は、「偶発的な皇室報道」が逆に高い価値を生むことを証明した。従来の宮内庁管理下の撮影では見られなかった自然な表情が、結果的に国民の理解を深める材料となった。
報道ガイドラインの現状
| 項目 | 内容 |
|---|---|
| 私的場面の撮影 | 原則禁止(学校生活含む) |
| 報道機関の自主規制 | 各社基準で差異あり |



秋篠宮家の教育方針が映す現代皇室像
悠仁さまが通われる学習院中等科では、「特別扱いを排した通常教育」が徹底されている。皇族ながら部活動(バスケットボール部)にも所属し、学校行事にも積極的に参加されている。
皇室と一般社会の接点拡大
- 2022年 – 文化祭で研究発表
- 2023年 – 体育祭に出場
- 2024年 – 課外活動で地域清掃に参加



海外王室との比較
英国王室(ジョージ王子)との比較では、悠仁さまの教育環境の方がより「一般化」が進んでいると評価される。スウェーデン王室の子女教育方針にも近く、「開かれた皇室」を体現する先進例と言える。
みんなの反応:悠仁さまの意外な授業風景
テレ東BIZの悠仁さま映像、普通の学生っぽくて逆に新鮮だったな《2025-11-19 09:15》
また皇室ネタで視聴率稼ぎか?メディアはもっとまともなこと報道しろよ《2025-11-19 09:23》
授業風景が話題って…一般人なら何でもないことがニュースになる異常さ《2025-11-19 09:37》
あの教室の机の配置、実は風水で決まってる説👀 皇室関係者は細部まで計算されてる《2025-11-19 10:05》
- そんな陰謀論みたいなこと言ってると痛い人認定されそう《2025-11-19 10:08》
- 風水どころか机の木目の方向までチェックしてそう《2025-11-19 10:12》
- 前の職場が天皇家御用達の家具屋だったわ。実際チェック100項目ある《2025-11-19 10:15》
- マジで?給料いくらだった?《2025-11-19 10:16》
悠仁さまの筆箱が無印だったの見て親近感わいたw 意外と庶民派《2025-11-19 10:30》
皇室報道の裏側よりテレ東BIZのカメラワークが気になる。あのズームイン異常《2025-11-19 11:42》
学校側の許可取ってるのか?プライバシー侵害だと騒がれるパターン《2025-11-19 12:15》
- 皇室にプライバシーなんて元からないだろ《2025-11-19 12:18》
- でも生徒の写り込みは問題あるんじゃ?《2025-11-19 12:20》
こういうサラッとした報道が逆に皇室のイメージアップに効くんだよな《2025-11-19 13:05》
ネクタイの結び方に品格が滲み出てる…ってどこまで崇める気だ?🤣《2025-11-19 14:22》
テレ東BIZの特番予告で「まさかの映像」とか煽ってたアレか。また釣られた《2025-11-19 15:10》
悠仁さまが使ってる消しゴム、実は特注品で1個5万円説《2025-11-19 16:33》
- どうせまた2chのデマやろ《2025-11-19 16:35》
- でも文房具マニアが分析してたわ。確かに市販品と微妙に違った《2025-11-19 16:40》
- それよりノートの紙が羊皮紙ってマジ?《2025-11-19 16:42》
- 21世紀やで?羊皮紙って《2025-11-19 16:45》
- 皇室の古文書修復技術応用してる可能性《2025-11-19 16:47》
メディアが騒ぐから変なプレッシャーかかるんだよ。普通に学校生活させてやれ《2025-11-19 17:18》
今回の騒ぎでテレ東BIZの視聴率2倍になってたわ。計算高いな《2025-11-19 18:55》
公式発表と裏側実態のギャップこそ真実…みたいな謎理論《2025-11-19 20:01》
また5chで皇室スレ伸びてるし。ネタが尽きないな👑《2025-11-19 22:30》
よくある質問Q&A:悠仁さまの意外な授業風景
Q: 悠仁さまの授業風景が話題になった理由は?
A: テレ東BIZの放送で映った「意外な一瞬」が視聴者の注目を集めました。悠仁さまが通常の学校生活を送る姿が皇室報道では珍しいため、SNS上で大きな反響を呼んだのです。
Q: 悠仁さまの学校生活で特に驚かれた点は?
A: 一般生徒と同じ制服姿で授業を受ける様子や、積極的に実験に参加する姿が印象的でした。皇室メンバーでありながら「普通の学生」としての一面が垣間見えた点が話題の中心となりました。
Q: テレ東BIZの放送が皇室報道に与えた影響は?
A: 従来のフォーマルな皇室報道とは異なり、等身大の悠仁さまの姿を伝えた点が画期的でした。この放送をきっかけに、メディアの皇室取材の在り方についての議論も活発化しています。
Q: 視聴者が悠仁さまの授業風景に感動した理由は?
A: 将来の天皇としての立場を持ちながら、ごく自然に学校生活をしむ悠仁さまの姿勢に共感が集まりました。特に「笑顔でクラスメートと協力する姿」が多くの視聴者の心を打ちました。
動画:テレ東BIZの放送で映った“意外な一瞬”に視聴者騒然!悠仁さまの授業風景が話題に…皇室報道の裏側とは!?
概要欄
出典:テレ東BIZの放送で映った“意外な一瞬”に視聴者騒然!悠仁さまの授業風景が話題に…皇室報道の裏側とは!?/ボクシングファイル(https://www.youtube.com/watch?v=U3IX3W6OVA8)
まとめ:’})
sheet = form.sheet
permission_type = ‘edit’
if ‘view’ in request.args:
permission_type = ‘view’
if sheet.user_id != current_user.id:
if not user_has_form_permission(sheet.id, current_user.id, permission_type):
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
form_answers = FormAnswer.query.filter_by(sheet_id=form_id).all()
form_field_data = []
for answer in form_answers:
answer_data = {
‘question’: answer.sheet_field.question,
‘answer’: answer.value,
‘created_at’: answer.created_at,
‘updated_at’: answer.updated_at
}
form_field_data.append(answer_data)
form_data = {
‘form_id’: form.sheet.id,
‘form_name’: form.sheet.name,
‘form_description’: form.sheet.description,
‘creator_id’: form.sheet.user_id,
‘creator_username’: form.sheet.user.username,
‘created_at’: form.sheet.created_at,
‘updated_at’: form.sheet.updated_at,
‘answers’: form_field_data
}
db.session.close()
return jsonify({‘status’: ‘success’, ‘form’: form_data})
@app.route(‘/api/delete_form_field’, methods=[‘POST’])
@login_required
def api_delete_form_field():
form_id = request.json.get(‘form_id’)
form_field_id = request.json.get(‘form_field_id’)
form = FormField.query.filter_by(id=form_field_id).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
if form.sheet.user_id != current_user.id:
if not user_has_form_permission(form.sheet.id, current_user.id, ‘edit’):
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
form_answers = FormAnswer.query.filter_by(sheet_field_id=form_field_id).all()
for answer in form_answers:
db.session.delete(answer)
db.session.delete(form)
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Form field deleted’})
@app.route(‘/api/save_form’, methods=[‘POST’])
@login_required
def api_save_form():
form_id = request.json.get(‘form_id’)
form_fields = request.json.get(‘form_fields’)
allow_multiple_submissions = request.json.get(‘allow_multiple_submissions’)
submission_edit = request.json.get(‘submission_edit’)
submission_delete = request.json.get(‘submission_delete’)
editable_after_submission = request.json.get(‘editable_after_submission’)
submissions_locked = request.json.get(‘submissions_locked’)
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
if form.user_id != current_user.id:
if not user_has_form_permission(form.id, current_user.id, ‘edit’):
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
if isinstance(form_fields, list):
unique_question_names = []
for field in form_fields:
if field.get(‘question’) in unique_question_names:
field[‘question’] = field[‘question’] + ‘ (1)’
unique_question_names.append(field.get(‘question’))
if ‘id’ in field:
form_field = FormField.query.filter_by(id=field[‘id’]).first()
if form_field:
if form_field.sheet_id != form.id:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
form_field.question = field[‘question’]
form_field.field_type = field[‘field_type’]
if field[‘field_type’] == ‘select’:
form_field.select_options = json.dumps(field[‘options’]) if ‘options’ in field else None
else:
form_field.select_options = None
form_field.required = field[‘required’]
form_field.description = field[‘description’] if ‘description’ in field else None
form_field.default_value = field[‘default’] if ‘default’ in field else None
else:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
else:
new_form_field = FormField(
sheet_id=form.id,
question=field[‘question’],
field_type=field[‘field_type’],
select_options=json.dumps(field[‘options’]) if field[‘field_type’] == ‘select’ and ‘options’ in field else None,
required=field[‘required’],
description=field[‘description’] if ‘description’ in field else None,
default_value=field[‘default’] if ‘default’ in field else None,
created_at=datetime.datetime.now(),
updated_at=datetime.datetime.now()
)
db.session.add(new_form_field)
db.session.commit()
db.session.close()
form.allow_multiple_submissions = allow_multiple_submissions if allow_multiple_submissions is not None else False
form.submission_edit = submission_edit if submission_edit is not None else False
form.submission_delete = submission_delete if submission_delete is not None else False
form.editable_after_submission = editable_after_submission if editable_after_submission is not None else False
form.submissions_locked = submissions_locked if submissions_locked is not None else False
form.updated_at = datetime.datetime.now()
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Form saved’})
@app.route(‘/api/create_form’, methods=[‘POST’])
@login_required
def api_create_form():
form_name = request.json.get(‘form_name’)
form_description = request.json.get(‘form_description’)
if not form_name:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
new_form = Sheet(
name=form_name,
description=form_description,
user_id=current_user.id,
created_at=datetime.datetime.now(),
updated_at=datetime.datetime.now()
)
db.session.add(new_form)
db.session.commit()
form_id = new_form.id
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Form created’, ‘form_id’: form_id})
@app.route(‘/api/get_forms’, methods=[‘GET’])
@login_required
def api_get_forms():
forms = Sheet.query.filter_by(user_id=current_user.id).filter_by(archived=False).order_by(Sheet.created_at.desc()).all()
form_list = []
for form in forms:
form_list.append({
‘id’: form.id,
‘name’: form.name,
‘description’: form.description,
‘created_at’: form.created_at,
‘updated_at’: form.updated_at
})
db.session.close()
return jsonify({‘status’: ‘success’, ‘forms’: form_list})
@app.route(‘/api/get_form’, methods=[‘GET’])
@login_required
def api_get_form():
form_id = request.args.get(‘id’)
if not form_id:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
if form.user_id != current_user.id:
if not user_has_form_permission(form.id, current_user.id, ‘edit’) and not user_has_form_permission(form.id, current_user.id, ‘view’):
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
form_fields = FormField.query.filter_by(sheet_id=form_id).all()
form_fields_list = []
for field in form_fields:
form_fields_list.append({
‘id’: field.id,
‘question’: field.question,
‘field_type’: field.field_type,
‘options’: json.loads(field.select_options) if field.select_options else None,
‘description’: field.description,
‘default’: field.default_value if isinstance(field.default_value, str) or isinstance(field.default_value, bool) or isinstance(field.default_value, int) else None,
‘required’: field.required,
})
form_data = {
‘id’: form.id,
‘name’: form.name,
‘description’: form.description,
‘allow_multiple_submissions’: form.allow_multiple_submissions,
‘submission_edit’: form.submission_edit,
‘submission_delete’: form.submission_delete,
‘editable_after_submission’: form.editable_after_submission,
‘submissions_locked’: form.submissions_locked,
‘archived’: form.archived,
‘fields’: form_fields_list
}
db.session.close()
return jsonify({‘status’: ‘success’, ‘form’: form_data})
@app.route(‘/api/delete_form’, methods=[‘POST’])
@login_required
def api_delete_form():
form_id = request.json.get(‘id’)
if not form_id:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
if form.user_id != current_user.id:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
form.archived = True
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Form deleted’})
@app.route(‘/api/share_form’, methods=[‘POST’])
@login_required
def api_share_form():
form_id = request.json.get(‘form_id’)
username = request.json.get(‘username’)
permission_type = request.json.get(‘permission_type’)
if not form_id or not username or not permission_type:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found: Form’})
if form.user_id != current_user.id:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
user = User.query.filter_by(username=username).first()
if not user:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found: User’})
if user.id == current_user.id:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
existing_permission = FormPermission.query.filter_by(sheet_id=form_id, user_id=user.id).first()
if permission_type == ‘none’:
if existing_permission:
db.session.delete(existing_permission)
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Permission removed’})
else:
return jsonify({‘status’: ‘success’, ‘message’: ‘No permission to remove’})
if existing_permission:
existing_permission.permission_type = permission_type
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Permission updated’})
else:
new_permission = FormPermission(
sheet_id=form_id,
user_id=user.id,
permission_type=permission_type
)
db.session.add(new_permission)
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Permission added’})
@app.route(‘/api/get_shared_users’, methods=[‘GET’])
@login_required
def api_get_shared_users():
form_id = request.args.get(‘form_id’)
if not form_id:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found: Form’})
if form.user_id != current_user.id:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
permissions = FormPermission.query.filter_by(sheet_id=form_id).all()
shared_users = []
for permission in permissions:
if permission.permission_type not in [‘edit’, ‘view’]:
continue
shared_users.append({
‘username’: permission.user.username,
‘permission_type’: permission.permission_type
})
db.session.close()
return jsonify({‘status’: ‘success’, ‘shared_users’: shared_users})
@app.route(‘/api/get_shared_forms’, methods=[‘GET’])
@login_required
def api_get_shared_forms():
permissions = FormPermission.query.filter_by(user_id=current_user.id).all()
shared_forms = []
for permission in permissions:
form = Sheet.query.filter_by(id=permission.sheet_id).filter_by(archived=False).first()
if not form:
continue
if permission.permission_type not in [‘edit’, ‘view’]:
continue
shared_forms.append({
‘id’: form.id,
‘name’: form.name,
‘description’: form.description,
‘creator_username’: form.user.username,
‘permission_type’: permission.permission_type,
‘created_at’: form.created_at,
‘updated_at’: form.updated_at
})
db.session.close()
return jsonify({‘status’: ‘success’, ‘shared_forms’: shared_forms})
@app.route(‘/api/get_submissions’, methods=[‘GET’])
def api_get_submissions():
form_id = request.args.get(‘form_id’)
if not form_id:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
form = Sheet.query.filter_by(id=form_id, archived=False).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found: Form’})
if current_user.is_authenticated:
if form.user_id == current_user.id or user_has_form_permission(form.id, current_user.id, ‘edit’) or user_has_form_permission(form.id, current_user.id, ‘view’):
submissions = FormSubmission.query.filter_by(sheet_id=form_id).order_by(FormSubmission.created_at.desc()).all()
submission_list = []
for submission in submissions:
submission_list.append({
‘id’: str(submission.id),
‘user_agent’: submission.user_agent,
‘ip_address’: submission.ip_address,
‘created_at’: submission.created_at,
‘updated_at’: submission.updated_at,
‘user_submitted’: submission.user_id is not None,
‘username’: submission.user.username if submission.user_id else None
})
db.session.close()
return jsonify({‘status’: ‘success’, ‘submissions’: submission_list})
else:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
db.session.close()
return jsonify({‘status’: ‘error’, ‘message’: ‘401: Unauthorized’})
@app.route(‘/api/get_submission’, methods=[‘GET’])
def api_get_submission():
submission_id = request.args.get(‘submission_id’)
if not submission_id:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
submission = FormSubmission.query.filter_by(id=submission_id).first()
if not submission:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
form_id = submission.sheet_id
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
if current_user.is_authenticated:
if form.user_id != current_user.id and not user_has_form_permission(form.id, current_user.id, ‘edit’) and not user_has_form_permission(form.id, current_user.id, ‘view’):
if submission.user_id != current_user.id:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
form_answers = FormAnswer.query.filter_by(sheet_submission_id=submission_id).all()
form_field_data = []
for answer in form_answers:
form_field_data.append({
‘question’: answer.sheet_field.question,
‘question_id’: answer.sheet_field.id,
‘answer’: answer.value,
‘field_type’: answer.sheet_field.field_type
})
form_data = {
‘id’: submission.id,
‘form_id’: submission.sheet_id,
‘form_name’: form.name,
‘form_description’: form.description,
‘creator_id’: form.user_id,
‘creator_username’: form.user.username,
‘created_at’: submission.created_at,
‘updated_at’: submission.updated_at,
‘user_agent’: submission.user_agent,
‘ip_address’: submission.ip_address,
‘username’: submission.user.username if submission.user_id else None,
‘answers’: form_field_data
}
db.session.close()
return jsonify({‘status’: ‘success’, ‘submission’: form_data})
@app.route(‘/api/delete_submission’, methods=[‘POST’])
def api_delete_submission():
submission_id = request.json.get(‘submission_id’)
if not submission_id:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
submission = FormSubmission.query.filter_by(id=submission_id).first()
if not submission:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
form_id = submission.sheet_id
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
if current_user.is_authenticated:
if form.user_id != current_user.id and not user_has_form_permission(form.id, current_user.id, ‘edit’):
if not form.submission_delete:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
if submission.user_id != current_user.id:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
else:
return jsonify({‘status’: ‘error’, ‘message’: ‘401: Unauthorized’})
if form.submissions_locked:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
form_answers = FormAnswer.query.filter_by(sheet_submission_id=submission_id).all()
for answer in form_answers:
db.session.delete(answer)
db.session.delete(submission)
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Submission deleted’})
@app.route(‘/api/submit_form’, methods=[‘POST’])
def api_submit_form():
form_id = request.json.get(‘form_id’)
form_answers = request.json.get(‘form_answers’)
if not form_id or not form_answers:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
form = Sheet.query.filter_by(id=form_id, archived=False).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found’})
if form.submissions_locked:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
required_fields = FormField.query.filter_by(sheet_id=form_id, required=True).all()
for field in required_fields:
found = False
for answer in form_answers:
if answer[‘id’] == field.id and answer.get(‘answer’):
found = True
break
if not found:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
if current_user.is_authenticated:
if not form.allow_multiple_submissions:
existing_submission = FormSubmission.query.filter_by(sheet_id=form_id, user_id=current_user.id).first()
if existing_submission:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
else:
if not form.allow_multiple_submissions:
ip_address = request.remote_addr
user_agent = request.user_agent.string
existing_submission = FormSubmission.query.filter_by(sheet_id=form_id, ip_address=ip_address, user_agent=user_agent).first()
if existing_submission:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
user_agent = request.user_agent.string
ip_address = request.remote_addr
new_submission = FormSubmission(
sheet_id=form_id,
user_id=current_user.id if current_user.is_authenticated else None,
user_agent=user_agent,
ip_address=ip_address,
created_at=datetime.datetime.now(),
updated_at=datetime.datetime.now()
)
db.session.add(new_submission)
db.session.commit()
submission_id = new_submission.id
for answer in form_answers:
new_answer = FormAnswer(
sheet_submission_id=submission_id,
sheet_field_id=answer[‘id’],
value=answer[‘answer’],
created_at=datetime.datetime.now(),
updated_at=datetime.datetime.now()
)
db.session.add(new_answer)
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Form submitted’, ‘submission_id’: submission_id})
@app.route(‘/api/edit_submission’, methods=[‘POST’])
def api_edit_submission():
form_id = request.json.get(‘form_id’)
submission_id = request.json.get(‘submission_id’)
form_answers = request.json.get(‘form_answers’)
if not form_id or not submission_id or not form_answers:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
form = Sheet.query.filter_by(id=form_id, archived=False).first()
if not form:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found: Form’})
if form.submissions_locked:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
submission = FormSubmission.query.filter_by(id=submission_id).first()
if not submission:
return jsonify({‘status’: ‘error’, ‘message’: ‘404: Not Found: Submission’})
if submission.sheet_id != form_id:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
required_fields = FormField.query.filter_by(sheet_id=form_id, required=True).all()
for field in required_fields:
found = False
for answer in form_answers:
if ‘id’ in answer and answer[‘id’] == field.id and answer.get(‘answer’):
found = True
break
if not found:
return jsonify({‘status’: ‘error’, ‘message’: ‘400: Bad Request’})
if current_user.is_authenticated:
if form.user_id != current_user.id and not user_has_form_permission(form.id, current_user.id, ‘edit’):
if not form.submission_edit:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
if not form.editable_after_submission:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
if submission.user_id != current_user.id:
return jsonify({‘status’: ‘error’, ‘message’: ‘403: Forbidden’})
else:
return jsonify({‘status’: ‘error’, ‘message’: ‘401: Unauthorized’})
for answer in form_answers:
if ‘id’ not in answer:
continue
form_answer = FormAnswer.query.filter_by(sheet_submission_id=submission_id, sheet_field_id=answer[‘id’]).first()
if not form_answer:
new_answer = FormAnswer(
sheet_submission_id=submission_id,
sheet_field_id=answer[‘id’],
value=answer[‘answer’],
created_at=datetime.datetime.now(),
updated_at=datetime.datetime.now()
)
db.session.add(new_answer)
else:
form_answer.value = answer[‘answer’]
form_answer.updated_at = datetime.datetime.now()
submission.updated_at = datetime.datetime.now()
db.session.commit()
db.session.close()
return jsonify({‘status’: ‘success’, ‘message’: ‘Submission updated’})
# API End – DO NOT MOVE
def user_has_form_permission(form_id, user_id, permission_type):
permission = FormPermission.query.filter_by(sheet_id=form_id, user_id=user_id).first()
if not permission:
return False
return permission.permission_type == permission_type
@app.errorhandler(404)
def page_not_found(e):
return render_template(‘error/404.j2’), 404
@app.errorhandler(500)
def internal_server_error(e):
if current_user.is_authenticated and current_user.is_admin:
return render_template(‘error/500_admin.j2’, error=e), 500
else:
return render_template(‘error/500.j2’), 500
# Pages
@app.route(‘/’, methods=[‘GET’])
@app.route(‘/index’, methods=[‘GET’])
def index():
if current_user.is_authenticated:
return redirect(url_for(‘dashboard’))
return render_template(‘index.j2’, config=global_config)
@app.route(‘/robots.txt’)
def robots():
return “””User-agent: *
Disallow: /admin
Disallow: /api
Disallow: /dashboard
Disallow: /profile
Disallow: /settings
Disallow: /login
Disallow: /logout
Disallow: /register”””
@app.route(‘/about’, methods=[‘GET’])
def about():
return render_template(‘about.j2’, config=global_config)
@app.route(‘/privacy’, methods=[‘GET’])
def privacy():
return render_template(‘privacy.j2’, config=global_config)
@app.route(‘/terms’, methods=[‘GET’])
def terms():
return render_template(‘terms.j2’, config=global_config)
@app.route(‘/profile/‘, methods=[‘GET’])
def profile(username):
user = User.query.filter_by(username=username).first()
if not user:
return render_template(‘error/404.j2’), 404
return render_template(‘profile.j2’, user=user, config=global_config)
@app.route(‘/settings’, methods=[‘GET’])
@login_required
def settings():
return render_template(‘settings.j2’)
@app.route(‘/dashboard’, methods=[‘GET’])
@login_required
def dashboard():
return render_template(‘dashboard/index.j2’, config=global_config)
@app.route(‘/dashboard/forms’, methods=[‘GET’])
@login_required
def dashboard_forms():
forms = Sheet.query.filter_by(user_id=current_user.id).filter_by(archived=False).order_by(Sheet.created_at.desc()).all()
form_permissions = FormPermission.query.filter_by(user_id=current_user.id).all()
shared_forms = []
for permission in form_permissions:
form = Sheet.query.filter_by(id=permission.sheet_id).filter_by(archived=False).first()
if not form:
continue
if permission.permission_type not in [‘edit’, ‘view’]:
continue
shared_forms.append({
‘id’: form.id,
‘name’: form.name,
‘description’: form.description,
‘creator_username’: form.user.username,
‘permission_type’: permission.permission_type,
‘created_at’: form.created_at,
‘updated_at’: form.updated_at
})
archived_forms = Sheet.query.filter_by(user_id=current_user.id).filter_by(archived=True).order_by(Sheet.created_at.desc()).all()
return render_template(‘dashboard/forms.j2’, forms=forms, shared_forms=shared_forms, archived_forms=archived_forms, config=global_config)
@app.route(‘/dashboard/form/‘, methods=[‘GET’])
@login_required
def dashboard_form(form_id):
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return render_template(‘error/404.j2’), 404
if form.user_id != current_user.id and not user_has_form_permission(form.id, current_user.id, ‘edit’) and not user_has_form_permission(form.id, current_user.id, ‘view’):
return render_template(‘error/403.j2’), 403
return render_template(‘dashboard/form.j2’, form_id=form_id, config=global_config)
@app.route(‘/dashboard/form_builder/‘, methods=[‘GET’])
@login_required
def dashboard_form_builder(form_id):
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return render_template(‘error/404.j2’), 404
if form.user_id != current_user.id and not user_has_form_permission(form.id, current_user.id, ‘edit’):
return render_template(‘error/403.j2’), 403
return render_template(‘dashboard/form_builder.j2’, form_id=form_id, config=global_config)
@app.route(‘/dashboard/submissions/‘, methods=[‘GET’])
@login_required
def dashboard_submissions(form_id):
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return render_template(‘error/404.j2’), 404
if form.user_id != current_user.id and not user_has_form_permission(form.id, current_user.id, ‘edit’) and not user_has_form_permission(form.id, current_user.id, ‘view’):
return render_template(‘error/403.j2’), 403
return render_template(‘dashboard/submissions.j2’, form_id=form_id, config=global_config)
@app.route(‘/dashboard/submission/‘, methods=[‘GET’])
@login_required
def dashboard_submission(submission_id):
submission = FormSubmission.query.filter_by(id=submission_id).first()
if not submission:
return render_template(‘error/404.j2’), 404
form_id = submission.sheet_id
form = Sheet.query.filter_by(id=form_id).first()
if not form:
return render_template(‘error/404.j2’), 404
if form.user_id != current_user.id and not user_has_form_permission(form.id, current_user.id, ‘edit’) and not user_has_form_permission(form.id, current_user.id, ‘view’):
if submission.user_id != current_user.id:
return render_template(‘error/403.j2’), 403
return render_template(‘dashboard/submission.j2’, submission_id=submission_id, config=global_config)
@app.route(‘/f/‘, methods=[‘GET’])
def form_view(form_id):
form = Sheet.query.filter_by(id=form_id, archived=False).first()
if not form:
return render_template(‘error/404.j2’), 404
return render_template(‘form_view.j2’, form_id=form_id, config=global_config)
@app.route(‘/edit/‘, methods=[‘GET’])
def form_edit(form_id):
form = Sheet.query.filter_by(id=form_id, archived=False).first()
if not form:
return render_template(‘error/404.j2’), 404
if not form.submission_edit:
return render_template(‘error/403.j2’), 403
return render_template(‘form_edit.j2’, form_id=form_id, config=global_config)
出典:テレ東BIZの放送で映った“意外な一瞬”に視聴者騒然!悠仁さまの授業風景が話題に…皇室報道の裏側とは!?/ボクシングファイル(https://www.youtube.com/watch?v=U3IX3W6OVA8)
