From ed09c3a98c43bcb77acca4225dcc0807071cadbe Mon Sep 17 00:00:00 2001 From: Hajar RAHMOUNI Date: Thu, 15 Feb 2024 21:49:41 +0100 Subject: [PATCH 1/2] =?UTF-8?q?ajout=20d'=C3=A9tudiant=20dans=20la=20googl?= =?UTF-8?q?e=20sheet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 12 ++++++ lib/student_edit_page.dart | 80 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 lib/student_edit_page.dart diff --git a/lib/main.dart b/lib/main.dart index 0e951b2..2a1608c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,6 +4,7 @@ import 'package:http/http.dart' as http; import 'package:open_file/open_file.dart'; import 'package:pdf/widgets.dart' as pw; import 'data_page.dart'; +import 'student_edit_page.dart'; import 'config.dart'; void main() { @@ -100,6 +101,17 @@ class _HomePageState extends State { }, child: const Text('Continuer'), ), + const SizedBox(height: 20.0), // Espace supplémentaire + // Bouton pour naviguer vers la page d'ajout d'étudiant + ElevatedButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => StudentEditPage()), + ); + }, + child: const Text('Ajouter un étudiant'), + ), ], ), ), diff --git a/lib/student_edit_page.dart b/lib/student_edit_page.dart new file mode 100644 index 0000000..348059e --- /dev/null +++ b/lib/student_edit_page.dart @@ -0,0 +1,80 @@ +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'dart:convert'; + +class StudentEditPage extends StatefulWidget { + @override + _StudentEditPageState createState() => _StudentEditPageState(); +} + +class _StudentEditPageState extends State { + final TextEditingController _firstNameController = TextEditingController(); + final TextEditingController _lastNameController = TextEditingController(); + final TextEditingController _studentNumberController = TextEditingController(); + + Future _addStudentToSheet() async { + final uri = Uri.parse("https://script.google.com/macros/s/AKfycby7MshsHRlOsXf6FCt69OxG023CJnOPSflHx0CSMV-1FMZJ-13GC14PSI9P2abClPUzOg/exec"); + final response = await http.post(uri, + headers: { + "Content-Type": "application/json", + }, + body: json.encode({ + "values": [ + [ + _firstNameController.text, + _lastNameController.text, + _studentNumberController.text, + "", // NFC Code, vide pour le moment + "oui" + ] + ] + })); + + print('Statut de la réponse: ${response.statusCode}'); + if (response.statusCode == 200) { + print('Réponse du serveur: ${response.body}'); + Navigator.pop(context); + } else if (response.statusCode == 302) { + var newUri = response.headers['location']; + if (newUri != null) { + print('Réponse du serveur: ${response.body}'); + Navigator.pop(context); + } + } else { + print('Erreur lors de l\'ajout de l\'étudiant: ${response.body}'); + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text("Erreur lors de l'ajout de l'étudiant"), + )); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Text("Ajouter un étudiant")), + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + TextField( + controller: _firstNameController, + decoration: InputDecoration(labelText: "Prénom de l'étudiant"), + ), + TextField( + controller: _lastNameController, + decoration: InputDecoration(labelText: "Nom de l'étudiant"), + ), + TextField( + controller: _studentNumberController, + decoration: InputDecoration(labelText: "Numéro de l'étudiant"), + ), + ElevatedButton( + onPressed: _addStudentToSheet, + child: Text("Ajouter à la Google Sheet"), + ), + ], + ), + ), + ); + } +} -- GitLab From 59f49ad89f1bb8f8369f57e98cca2f1d016e91fd Mon Sep 17 00:00:00 2001 From: Hajar RAHMOUNI Date: Thu, 15 Feb 2024 21:52:25 +0100 Subject: [PATCH 2/2] mettr l'url dans le fichier de config --- lib/student_edit_page.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/student_edit_page.dart b/lib/student_edit_page.dart index 348059e..5c3a38b 100644 --- a/lib/student_edit_page.dart +++ b/lib/student_edit_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; +import 'config.dart'; class StudentEditPage extends StatefulWidget { @override @@ -13,7 +14,7 @@ class _StudentEditPageState extends State { final TextEditingController _studentNumberController = TextEditingController(); Future _addStudentToSheet() async { - final uri = Uri.parse("https://script.google.com/macros/s/AKfycby7MshsHRlOsXf6FCt69OxG023CJnOPSflHx0CSMV-1FMZJ-13GC14PSI9P2abClPUzOg/exec"); + final uri = Uri.parse(AppConfig.urlAPI); final response = await http.post(uri, headers: { "Content-Type": "application/json", -- GitLab