From 70f4980c5894563d14fa35976db4ab4c116c35ee Mon Sep 17 00:00:00 2001 From: limwa Date: Fri, 13 Sep 2024 23:49:26 +0000 Subject: [PATCH 01/32] Bump app version [no ci] --- packages/uni_app/app_version.txt | 2 +- packages/uni_app/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/app_version.txt b/packages/uni_app/app_version.txt index fd5115fd1..e82c37ca7 100644 --- a/packages/uni_app/app_version.txt +++ b/packages/uni_app/app_version.txt @@ -1 +1 @@ -1.9.0-beta.32+295 +1.9.0+296 diff --git a/packages/uni_app/pubspec.yaml b/packages/uni_app/pubspec.yaml index 23dfa3c4b..53bebcc5c 100644 --- a/packages/uni_app/pubspec.yaml +++ b/packages/uni_app/pubspec.yaml @@ -7,7 +7,7 @@ publish_to: "none" # We do not publish to pub.dev # To change it manually, override the value in app_version.txt. # The app version code is automatically also bumped by CI. # Do not change it manually. -version: 1.9.0-beta.32+295 +version: 1.9.0+296 environment: sdk: ">=3.4.0 <4.0.0" From ddae50ef7e1c08bbc125669e609634b2e752013b Mon Sep 17 00:00:00 2001 From: limwa Date: Wed, 18 Sep 2024 20:01:01 +0000 Subject: [PATCH 02/32] Bump app version [no ci] --- packages/uni_app/app_version.txt | 2 +- packages/uni_app/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/app_version.txt b/packages/uni_app/app_version.txt index e82c37ca7..f34b0efb6 100644 --- a/packages/uni_app/app_version.txt +++ b/packages/uni_app/app_version.txt @@ -1 +1 @@ -1.9.0+296 +1.9.1+305 diff --git a/packages/uni_app/pubspec.yaml b/packages/uni_app/pubspec.yaml index 62564d405..baf77af0f 100644 --- a/packages/uni_app/pubspec.yaml +++ b/packages/uni_app/pubspec.yaml @@ -7,7 +7,7 @@ publish_to: "none" # We do not publish to pub.dev # To change it manually, override the value in app_version.txt. # The app version code is automatically also bumped by CI. # Do not change it manually. -version: 1.9.0+296 +version: 1.9.1+305 environment: sdk: ">=3.4.0 <4.0.0" From 1785d0a5cf4071160476c3618f5a36d1f1089c1a Mon Sep 17 00:00:00 2001 From: DGoiana Date: Wed, 25 Sep 2024 13:07:03 +0000 Subject: [PATCH 03/32] Bump app version [no ci] --- packages/uni_app/app_version.txt | 2 +- packages/uni_app/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/app_version.txt b/packages/uni_app/app_version.txt index f34b0efb6..faa1e6eab 100644 --- a/packages/uni_app/app_version.txt +++ b/packages/uni_app/app_version.txt @@ -1 +1 @@ -1.9.1+305 +1.9.2+309 diff --git a/packages/uni_app/pubspec.yaml b/packages/uni_app/pubspec.yaml index baf77af0f..414c41e28 100644 --- a/packages/uni_app/pubspec.yaml +++ b/packages/uni_app/pubspec.yaml @@ -7,7 +7,7 @@ publish_to: "none" # We do not publish to pub.dev # To change it manually, override the value in app_version.txt. # The app version code is automatically also bumped by CI. # Do not change it manually. -version: 1.9.1+305 +version: 1.9.2+309 environment: sdk: ">=3.4.0 <4.0.0" From a408de13e2fdd20187b188455225842b0d36f16e Mon Sep 17 00:00:00 2001 From: DGoiana Date: Sun, 29 Sep 2024 10:49:56 +0000 Subject: [PATCH 04/32] Bump app version [no ci] --- packages/uni_app/app_version.txt | 2 +- packages/uni_app/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/app_version.txt b/packages/uni_app/app_version.txt index faa1e6eab..54c3a4a50 100644 --- a/packages/uni_app/app_version.txt +++ b/packages/uni_app/app_version.txt @@ -1 +1 @@ -1.9.2+309 +1.9.3+313 diff --git a/packages/uni_app/pubspec.yaml b/packages/uni_app/pubspec.yaml index 414c41e28..cf0556f02 100644 --- a/packages/uni_app/pubspec.yaml +++ b/packages/uni_app/pubspec.yaml @@ -7,7 +7,7 @@ publish_to: "none" # We do not publish to pub.dev # To change it manually, override the value in app_version.txt. # The app version code is automatically also bumped by CI. # Do not change it manually. -version: 1.9.2+309 +version: 1.9.3+313 environment: sdk: ">=3.4.0 <4.0.0" From 7a51b5b2a7b4a0db337bb48202f3be2d54c7087a Mon Sep 17 00:00:00 2001 From: DGoiana Date: Sun, 6 Oct 2024 12:50:09 +0000 Subject: [PATCH 05/32] Bump app version [no ci] --- packages/uni_app/app_version.txt | 2 +- packages/uni_app/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/app_version.txt b/packages/uni_app/app_version.txt index 54c3a4a50..1c2cce439 100644 --- a/packages/uni_app/app_version.txt +++ b/packages/uni_app/app_version.txt @@ -1 +1 @@ -1.9.3+313 +1.9.4+317 diff --git a/packages/uni_app/pubspec.yaml b/packages/uni_app/pubspec.yaml index 5fa96dbda..22d7a0b8d 100644 --- a/packages/uni_app/pubspec.yaml +++ b/packages/uni_app/pubspec.yaml @@ -7,7 +7,7 @@ publish_to: "none" # We do not publish to pub.dev # To change it manually, override the value in app_version.txt. # The app version code is automatically also bumped by CI. # Do not change it manually. -version: 1.9.3+313 +version: 1.9.4+317 environment: sdk: ">=3.4.0 <4.0.0" From 155d114598a706a4aa32687b9118f975ab678167 Mon Sep 17 00:00:00 2001 From: DGoiana Date: Fri, 11 Oct 2024 16:37:57 +0000 Subject: [PATCH 06/32] Bump app version [no ci] --- packages/uni_app/app_version.txt | 2 +- packages/uni_app/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/app_version.txt b/packages/uni_app/app_version.txt index 1c2cce439..37ea12578 100644 --- a/packages/uni_app/app_version.txt +++ b/packages/uni_app/app_version.txt @@ -1 +1 @@ -1.9.4+317 +1.9.5+323 diff --git a/packages/uni_app/pubspec.yaml b/packages/uni_app/pubspec.yaml index f6b1c98d9..2b23283f2 100644 --- a/packages/uni_app/pubspec.yaml +++ b/packages/uni_app/pubspec.yaml @@ -7,7 +7,7 @@ publish_to: "none" # We do not publish to pub.dev # To change it manually, override the value in app_version.txt. # The app version code is automatically also bumped by CI. # Do not change it manually. -version: 1.9.4+317 +version: 1.9.5+323 environment: sdk: ">=3.4.0 <4.0.0" From dfecd7c60eb3571430efd2cf1255077f43280ffb Mon Sep 17 00:00:00 2001 From: DGoiana Date: Mon, 14 Oct 2024 16:31:19 +0100 Subject: [PATCH 07/32] fixing casts --- .../parsers/parser_restaurants.dart | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/packages/uni_app/lib/controller/parsers/parser_restaurants.dart b/packages/uni_app/lib/controller/parsers/parser_restaurants.dart index 8a4dc1462..a4c543f70 100644 --- a/packages/uni_app/lib/controller/parsers/parser_restaurants.dart +++ b/packages/uni_app/lib/controller/parsers/parser_restaurants.dart @@ -91,25 +91,30 @@ Restaurant getRestaurantFromGSheets( response.body.indexOf('(') + 1, response.body.lastIndexOf(')'), ); - final parsedJson = - jsonDecode(jsonString) as Map>; + final parsedJson = jsonDecode(jsonString) as Map; final mealsList = []; final format = DateFormat('d/M/y'); - for (final row - in parsedJson['table']?['rows'] as List>) { - final cellList = row['c'] as List>; - if ((cellList[1]['v'] == 'Almoço' && isDinner) || - (cellList[1]['v'] != 'Almoço' && !isDinner)) { + + final table = parsedJson['table'] as Map; + final rows = table['rows'] as List; + + for (final row in rows) { + final cellList = (row as Map)['c'] as List; + if (((cellList[1] as Map)['v'] == 'Almoço' && isDinner) || + ((cellList[1] as Map)['v'] != 'Almoço' && !isDinner)) { continue; } final meal = Meal( - cellList[2]['v'] as String, - cellList[3]['v'] as String, - DayOfWeek.values[format.parseUtc(cellList[0]['f'] as String).weekday - 1], - format.parseUtc(cellList[0]['f'] as String), + (cellList[2] as Map)['v'] as String, + (cellList[3] as Map)['v'] as String, + DayOfWeek.values[format + .parseUtc((cellList[0] as Map)['f'] as String) + .weekday - + 1], + format.parseUtc((cellList[0] as Map)['f'] as String), ); mealsList.add(meal); } From 549a43ee6ec713bc09bbb411229b33b85219f25f Mon Sep 17 00:00:00 2001 From: thePeras Date: Wed, 16 Oct 2024 10:38:45 +0000 Subject: [PATCH 08/32] Bump app version [no ci] --- packages/uni_app/app_version.txt | 2 +- packages/uni_app/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/app_version.txt b/packages/uni_app/app_version.txt index 37ea12578..a8f28d942 100644 --- a/packages/uni_app/app_version.txt +++ b/packages/uni_app/app_version.txt @@ -1 +1 @@ -1.9.5+323 +1.9.6+327 diff --git a/packages/uni_app/pubspec.yaml b/packages/uni_app/pubspec.yaml index 2b23283f2..bcaec9cbb 100644 --- a/packages/uni_app/pubspec.yaml +++ b/packages/uni_app/pubspec.yaml @@ -7,7 +7,7 @@ publish_to: "none" # We do not publish to pub.dev # To change it manually, override the value in app_version.txt. # The app version code is automatically also bumped by CI. # Do not change it manually. -version: 1.9.5+323 +version: 1.9.6+327 environment: sdk: ">=3.4.0 <4.0.0" From 0c090f34d0acdaa2243dd8adf3c09a7b3f84c4de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=A3o=20Barbosa?= <117586175+simaopsbarbosa@users.noreply.github.com> Date: Fri, 8 Nov 2024 03:37:42 +0000 Subject: [PATCH 09/32] added icons to TabBar --- .../course_unit_info/course_unit_info.dart | 15 +++++++---- packages/uni_ui/lib/icons.dart | 10 +++++++ packages/uni_ui/lib/tabs/tab_icon.dart | 26 +++++++++++++++++++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 packages/uni_ui/lib/icons.dart create mode 100644 packages/uni_ui/lib/tabs/tab_icon.dart diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 339c12560..ad524d11c 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -10,6 +10,8 @@ import 'package:uni/view/common_widgets/pages_layouts/secondary/secondary.dart'; import 'package:uni/view/course_unit_info/widgets/course_unit_classes.dart'; import 'package:uni/view/course_unit_info/widgets/course_unit_files.dart'; import 'package:uni/view/course_unit_info/widgets/course_unit_sheet.dart'; +import 'package:uni_ui/icons.dart'; +import 'package:uni_ui/tabs/tab_icon.dart'; class CourseUnitDetailPageView extends StatefulWidget { const CourseUnitDetailPageView(this.courseUnit, {super.key}); @@ -84,11 +86,14 @@ class CourseUnitDetailPageViewState children: [ TabBar( tabs: [ - Tab(text: S.of(context).course_info), - Tab(text: S.of(context).course_class), - Tab( - text: S.of(context).files, - ), + TabIcon(icon: UniIcons.notebook, text: S.of(context).course_info), + // Tab(text: S.of(context).course_info), + TabIcon(icon: UniIcons.classes, text: S.of(context).course_class), + // Tab(text: S.of(context).course_class), + TabIcon(icon: UniIcons.files, text: S.of(context).files), + // Tab( + // text: S.of(context).files, + // ), ], ), Expanded( diff --git a/packages/uni_ui/lib/icons.dart b/packages/uni_ui/lib/icons.dart new file mode 100644 index 000000000..1dbb88e44 --- /dev/null +++ b/packages/uni_ui/lib/icons.dart @@ -0,0 +1,10 @@ +import 'package:phosphor_flutter/phosphor_flutter.dart'; + +class UniIcons { + static const calendar = PhosphorIconsDuotone.calendarDots; + static const exam = PhosphorIconsDuotone.exam; + static const courses = PhosphorIconsDuotone.certificate; + static const classes = PhosphorIconsDuotone.usersThree; + static const files = PhosphorIconsDuotone.folderOpen; + static const notebook = PhosphorIconsDuotone.notebook; +} diff --git a/packages/uni_ui/lib/tabs/tab_icon.dart b/packages/uni_ui/lib/tabs/tab_icon.dart new file mode 100644 index 000000000..b8bbcb3a9 --- /dev/null +++ b/packages/uni_ui/lib/tabs/tab_icon.dart @@ -0,0 +1,26 @@ +import 'package:flutter/material.dart'; + +class TabIcon extends StatelessWidget { + const TabIcon({ + super.key, + required this.icon, + required this.text, + }); + + final IconData icon; + final String text; + + @override + Widget build(BuildContext context) { + return Tab( + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(icon), + const SizedBox(width: 4), + Text(text), + ], + ), + ); + } +} From 5e21fe67dc65e610adad9e914146f9c99bff32db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=A3o=20Barbosa?= <117586175+simaopsbarbosa@users.noreply.github.com> Date: Fri, 8 Nov 2024 03:37:42 +0000 Subject: [PATCH 10/32] added icons to TabBar --- .../course_unit_info/course_unit_info.dart | 15 +++++++---- packages/uni_ui/lib/icons.dart | 10 +++++++ packages/uni_ui/lib/tabs/tab_icon.dart | 26 +++++++++++++++++++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 packages/uni_ui/lib/icons.dart create mode 100644 packages/uni_ui/lib/tabs/tab_icon.dart diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 339c12560..ad524d11c 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -10,6 +10,8 @@ import 'package:uni/view/common_widgets/pages_layouts/secondary/secondary.dart'; import 'package:uni/view/course_unit_info/widgets/course_unit_classes.dart'; import 'package:uni/view/course_unit_info/widgets/course_unit_files.dart'; import 'package:uni/view/course_unit_info/widgets/course_unit_sheet.dart'; +import 'package:uni_ui/icons.dart'; +import 'package:uni_ui/tabs/tab_icon.dart'; class CourseUnitDetailPageView extends StatefulWidget { const CourseUnitDetailPageView(this.courseUnit, {super.key}); @@ -84,11 +86,14 @@ class CourseUnitDetailPageViewState children: [ TabBar( tabs: [ - Tab(text: S.of(context).course_info), - Tab(text: S.of(context).course_class), - Tab( - text: S.of(context).files, - ), + TabIcon(icon: UniIcons.notebook, text: S.of(context).course_info), + // Tab(text: S.of(context).course_info), + TabIcon(icon: UniIcons.classes, text: S.of(context).course_class), + // Tab(text: S.of(context).course_class), + TabIcon(icon: UniIcons.files, text: S.of(context).files), + // Tab( + // text: S.of(context).files, + // ), ], ), Expanded( diff --git a/packages/uni_ui/lib/icons.dart b/packages/uni_ui/lib/icons.dart new file mode 100644 index 000000000..1dbb88e44 --- /dev/null +++ b/packages/uni_ui/lib/icons.dart @@ -0,0 +1,10 @@ +import 'package:phosphor_flutter/phosphor_flutter.dart'; + +class UniIcons { + static const calendar = PhosphorIconsDuotone.calendarDots; + static const exam = PhosphorIconsDuotone.exam; + static const courses = PhosphorIconsDuotone.certificate; + static const classes = PhosphorIconsDuotone.usersThree; + static const files = PhosphorIconsDuotone.folderOpen; + static const notebook = PhosphorIconsDuotone.notebook; +} diff --git a/packages/uni_ui/lib/tabs/tab_icon.dart b/packages/uni_ui/lib/tabs/tab_icon.dart new file mode 100644 index 000000000..b8bbcb3a9 --- /dev/null +++ b/packages/uni_ui/lib/tabs/tab_icon.dart @@ -0,0 +1,26 @@ +import 'package:flutter/material.dart'; + +class TabIcon extends StatelessWidget { + const TabIcon({ + super.key, + required this.icon, + required this.text, + }); + + final IconData icon; + final String text; + + @override + Widget build(BuildContext context) { + return Tab( + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(icon), + const SizedBox(width: 4), + Text(text), + ], + ), + ); + } +} From 8765eaeaf0f673434748578e7aaa7f4ac11d7d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=A3o=20Barbosa?= <117586175+simaopsbarbosa@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:43:15 +0000 Subject: [PATCH 11/32] changed TabIcon to look more similar to mockups --- .../lib/view/course_unit_info/course_unit_info.dart | 7 ++----- packages/uni_ui/lib/tabs/tab_icon.dart | 1 + 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index ad524d11c..2b6502fdb 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -85,15 +85,12 @@ class CourseUnitDetailPageViewState crossAxisAlignment: CrossAxisAlignment.start, children: [ TabBar( + // todo : pixel font size might not be the best choice + labelStyle: TextStyle(fontSize: 12), tabs: [ TabIcon(icon: UniIcons.notebook, text: S.of(context).course_info), - // Tab(text: S.of(context).course_info), TabIcon(icon: UniIcons.classes, text: S.of(context).course_class), - // Tab(text: S.of(context).course_class), TabIcon(icon: UniIcons.files, text: S.of(context).files), - // Tab( - // text: S.of(context).files, - // ), ], ), Expanded( diff --git a/packages/uni_ui/lib/tabs/tab_icon.dart b/packages/uni_ui/lib/tabs/tab_icon.dart index b8bbcb3a9..c49e825f7 100644 --- a/packages/uni_ui/lib/tabs/tab_icon.dart +++ b/packages/uni_ui/lib/tabs/tab_icon.dart @@ -13,6 +13,7 @@ class TabIcon extends StatelessWidget { @override Widget build(BuildContext context) { return Tab( + height: 30, child: Row( mainAxisSize: MainAxisSize.min, children: [ From c0200691ff4a42642874e0addeba9e49a0a358c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=A3o=20Barbosa?= <117586175+simaopsbarbosa@users.noreply.github.com> Date: Fri, 8 Nov 2024 15:50:36 +0000 Subject: [PATCH 12/32] added Professor Info modal --- .../course_unit_info/course_unit_info.dart | 2 +- .../widgets/course_unit_sheet.dart | 91 +++++++++++-------- .../widgets/modal_professor_info.dart | 44 +++++++++ 3 files changed, 99 insertions(+), 38 deletions(-) create mode 100644 packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 2b6502fdb..c783d955c 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -86,7 +86,7 @@ class CourseUnitDetailPageViewState children: [ TabBar( // todo : pixel font size might not be the best choice - labelStyle: TextStyle(fontSize: 12), + labelStyle: const TextStyle(fontSize: 12), tabs: [ TabIcon(icon: UniIcons.notebook, text: S.of(context).course_info), TabIcon(icon: UniIcons.classes, text: S.of(context).course_class), diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index d4df55a78..dd39df7cb 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -10,6 +10,7 @@ import 'package:uni/model/providers/startup/profile_provider.dart'; import 'package:uni/model/providers/startup/session_provider.dart'; import 'package:uni/view/common_widgets/generic_animated_expandable.dart'; import 'package:uni/view/common_widgets/generic_expandable.dart'; +import 'package:uni/view/course_unit_info/widgets/modal_professor_info.dart'; class CourseUnitSheetView extends StatelessWidget { const CourseUnitSheetView(this.courseUnitSheet, {super.key}); @@ -74,27 +75,35 @@ Widget buildRegentsRow(BuildContext context, List regents) { final idx = regent.key; return Padding( padding: EdgeInsets.only(bottom: idx == regents.length - 1 ? 0 : 5), - child: Row( - children: [ - FutureBuilder( - builder: (context, snapshot) => _buildAvatar(snapshot, 40), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(regent.value.code), - ), - ), - Padding( - padding: const EdgeInsets.only( - left: 10, - right: 10, + child: GestureDetector( + onTap: () { + showDialog( + context: context, + builder: (context) => ProfessorInfoModal(regent), + ); + }, + child: Row( + children: [ + FutureBuilder( + builder: (context, snapshot) => _buildAvatar(snapshot, 40), + future: ProfileProvider.fetchOrGetCachedProfilePicture( + session, + studentNumber: int.parse(regent.value.code), + ), ), - child: Text( - regent.value.name, - style: const TextStyle(fontSize: 17), - textAlign: TextAlign.center, + Padding( + padding: const EdgeInsets.only( + left: 10, + right: 10, + ), + child: Text( + regent.value.name, + style: const TextStyle(fontSize: 17), + textAlign: TextAlign.center, + ), ), - ), - ], + ], + ), ), ); }), @@ -147,26 +156,34 @@ Widget buildExpandedProfessors( return Padding( padding: EdgeInsets.only(bottom: idx == professors.length - 1 ? 0 : 5), - child: Row( - children: [ - FutureBuilder( - builder: (context, snapshot) => _buildAvatar(snapshot, 20), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(professor.value.code), - ), - ), - Padding( - padding: const EdgeInsets.only( - left: 10, + child: GestureDetector( + onTap: () { + showDialog( + context: context, + builder: (context) => ProfessorInfoModal(professor), + ); + }, + child: Row( + children: [ + FutureBuilder( + builder: (context, snapshot) => _buildAvatar(snapshot, 20), + future: ProfileProvider.fetchOrGetCachedProfilePicture( + session, + studentNumber: int.parse(professor.value.code), + ), ), - child: Text( - professor.value.name, - style: const TextStyle(fontSize: 14), - textAlign: TextAlign.center, + Padding( + padding: const EdgeInsets.only( + left: 10, + ), + child: Text( + professor.value.name, + style: const TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), ), - ), - ], + ], + ), ), ); }), diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart new file mode 100644 index 000000000..b0dfee669 --- /dev/null +++ b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart @@ -0,0 +1,44 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:uni/model/entities/course_units/sheet.dart'; +import 'package:uni/model/providers/startup/profile_provider.dart'; +import 'package:uni/model/providers/startup/session_provider.dart'; +import 'package:uni_ui/modal/modal.dart'; + +class ProfessorInfoModal extends StatelessWidget { + const ProfessorInfoModal(this.professor, {super.key}); + final MapEntry professor; + + @override + Widget build(BuildContext context) { + final session = context.read().state!; + return ModalDialog( + children: [ + Column( + children: [ + FutureBuilder( + builder: (context, snapshot) => CircleAvatar( + radius: 60, + backgroundImage: snapshot.hasData && snapshot.data != null + ? FileImage(snapshot.data!) as ImageProvider + : const AssetImage( + 'assets/images/profile_placeholder.png', + ), + ), + future: ProfileProvider.fetchOrGetCachedProfilePicture( + session, + studentNumber: int.parse(professor.value.code), + ), + ), + const SizedBox(height: 10), + Text( + professor.value.name, + style: Theme.of(context).textTheme.headlineSmall, + ), + ], + ), + ], + ); + } +} From 91dcba4a13da4aa915b7a94c847d0cd16e8501b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=A3o=20Barbosa?= <117586175+simaopsbarbosa@users.noreply.github.com> Date: Sun, 10 Nov 2024 21:21:31 +0000 Subject: [PATCH 13/32] added placeholder on professor info modal --- .../widgets/modal_professor_info.dart | 65 ++++++++++++++++++- packages/uni_ui/lib/icons.dart | 2 + 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart index b0dfee669..33e4dbb37 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart @@ -1,11 +1,14 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:phosphor_flutter/phosphor_flutter.dart'; import 'package:provider/provider.dart'; import 'package:uni/model/entities/course_units/sheet.dart'; import 'package:uni/model/providers/startup/profile_provider.dart'; import 'package:uni/model/providers/startup/session_provider.dart'; +import 'package:uni_ui/icons.dart'; import 'package:uni_ui/modal/modal.dart'; + class ProfessorInfoModal extends StatelessWidget { const ProfessorInfoModal(this.professor, {super.key}); final MapEntry professor; @@ -34,7 +37,67 @@ class ProfessorInfoModal extends StatelessWidget { const SizedBox(height: 10), Text( professor.value.name, - style: Theme.of(context).textTheme.headlineSmall, + style: Theme.of(context).textTheme.headlineMedium, + ), + const Opacity( + opacity: 0.25, + child: Divider(color: Colors.grey), + ), + Row( + children: [ + PhosphorIcon( + UniIcons.email, + color: Theme.of(context).colorScheme.primary, + duotoneSecondaryColor: Colors.red, + size: 32, + ), + const Padding( + padding: EdgeInsets.only(left: 10), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Email: ', + style: Theme.of(context).textTheme.titleSmall, + ), + Text( + '[email-professor@domain.com]', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ], + ), + const Opacity( + opacity: 0.25, + child: Divider(color: Colors.grey), + ), + Row( + children: [ + PhosphorIcon( + UniIcons.location, + color: Theme.of(context).colorScheme.primary, + duotoneSecondaryColor: Colors.red, + size: 32, + ), + const Padding( + padding: EdgeInsets.only(left: 10), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Sala: ', + style: Theme.of(context).textTheme.titleSmall, + ), + Text( + '[sala]', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ], ), ], ), diff --git a/packages/uni_ui/lib/icons.dart b/packages/uni_ui/lib/icons.dart index 1dbb88e44..3666b6561 100644 --- a/packages/uni_ui/lib/icons.dart +++ b/packages/uni_ui/lib/icons.dart @@ -7,4 +7,6 @@ class UniIcons { static const classes = PhosphorIconsDuotone.usersThree; static const files = PhosphorIconsDuotone.folderOpen; static const notebook = PhosphorIconsDuotone.notebook; + static const email = PhosphorIconsDuotone.paperPlaneTilt; + static const location = PhosphorIconsDuotone.mapPin; } From 62a9881715404a28c84453e98992b16c3bc39e95 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Mon, 18 Nov 2024 22:56:39 +0000 Subject: [PATCH 14/32] Update provider to fetch exams by course --- .../uni_app/lib/model/providers/lazy/exam_provider.dart | 7 +++++++ .../lib/view/course_unit_info/course_unit_info.dart | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/packages/uni_app/lib/model/providers/lazy/exam_provider.dart b/packages/uni_app/lib/model/providers/lazy/exam_provider.dart index 0f5ce3e93..6f30c7431 100644 --- a/packages/uni_app/lib/model/providers/lazy/exam_provider.dart +++ b/packages/uni_app/lib/model/providers/lazy/exam_provider.dart @@ -47,4 +47,11 @@ class ExamProvider extends StateProviderNotifier> { await db.saveIfPersistentSession(exams); return exams; } + + List getExamsForCourseUnit(CourseUnit courseUnit) { + return state + ?.where((exam) => exam.subject == courseUnit.abbreviation) + .toList() ?? + []; + } } diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 339c12560..8c2cf69ad 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -2,7 +2,9 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:uni/generated/l10n.dart'; import 'package:uni/model/entities/course_units/course_unit.dart'; +import 'package:uni/model/entities/exam.dart'; import 'package:uni/model/providers/lazy/course_units_info_provider.dart'; +import 'package:uni/model/providers/lazy/exam_provider.dart'; import 'package:uni/model/providers/startup/session_provider.dart'; import 'package:uni/utils/navigation_items.dart'; import 'package:uni/view/common_widgets/page_title.dart'; @@ -24,6 +26,9 @@ class CourseUnitDetailPageView extends StatefulWidget { class CourseUnitDetailPageViewState extends SecondaryPageViewState { + + List courseUnitExams = []; + Future loadInfo({required bool force}) async { final courseUnitsProvider = Provider.of(context, listen: false); @@ -55,6 +60,10 @@ class CourseUnitDetailPageViewState session, ); } + + + final examProvider = Provider.of(context, listen: false); + courseUnitExams = examProvider.getExamsForCourseUnit(widget.courseUnit); } @override From 84b694eff262a62b1c0cb5933fbf8808bf94b7d2 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Fri, 6 Dec 2024 23:37:37 +0000 Subject: [PATCH 15/32] Started displaying the exams on the course unit --- .../course_unit_info/course_unit_info.dart | 2 +- .../widgets/course_unit_sheet.dart | 32 ++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 8c2cf69ad..a8c8b1748 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -130,7 +130,7 @@ class CourseUnitDetailPageViewState ); } - return CourseUnitSheetView(sheet); + return CourseUnitSheetView(sheet, courseUnitExams); } Widget _courseUnitFilesView(BuildContext context) { diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index d4df55a78..ecd70d08b 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -6,14 +6,17 @@ import 'package:provider/provider.dart'; import 'package:uni/controller/fetchers/book_fetcher.dart'; import 'package:uni/generated/l10n.dart'; import 'package:uni/model/entities/course_units/sheet.dart'; +import 'package:uni/model/entities/exam.dart'; import 'package:uni/model/providers/startup/profile_provider.dart'; import 'package:uni/model/providers/startup/session_provider.dart'; import 'package:uni/view/common_widgets/generic_animated_expandable.dart'; import 'package:uni/view/common_widgets/generic_expandable.dart'; +import 'package:uni_ui/cards/exam_card.dart'; class CourseUnitSheetView extends StatelessWidget { - const CourseUnitSheetView(this.courseUnitSheet, {super.key}); + const CourseUnitSheetView(this.courseUnitSheet, this.exams, {super.key}); final Sheet courseUnitSheet; + final List exams; @override Widget build(BuildContext context) { @@ -38,6 +41,11 @@ class CourseUnitSheetView extends StatelessWidget { secondChild: buildExpandedProfessors(context, courseUnitSheet.professors), ), + const Text( + 'Exams', + style: TextStyle(fontSize: 20), + ), + buildExamsRow(context, exams), _buildCard(S.of(context).program, courseUnitSheet.content, context), _buildCard( S.of(context).evaluation, @@ -174,6 +182,28 @@ Widget buildExpandedProfessors( ), ); } +Widget buildExamsRow(BuildContext context, List exams) { + + return SizedBox( + height: 200, + width: double.infinity, + child: Wrap( + alignment: WrapAlignment.spaceBetween, + children: [ + ...exams.asMap().entries.map((exam) { + return ExamCard( + name: exam.value.subject, + acronym: exam.value.subject, + rooms: exam.value.rooms, + type: exam.value.examType, + startTime: exam.value.startTime, + showIcon: false, + ); + }), + ], + ), + ); +} Widget buildBooksRow(BuildContext context, List books) { return SizedBox( From 00f0fc2c9c526cc600ceaab9ec86c35940b2839a Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Fri, 6 Dec 2024 23:52:02 +0000 Subject: [PATCH 16/32] Removed the SizedBox on the exams col --- .../widgets/course_unit_sheet.dart | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 0f909b310..0bfae9384 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -199,26 +199,20 @@ Widget buildExpandedProfessors( ), ); } -Widget buildExamsRow(BuildContext context, List exams) { - return SizedBox( - height: 200, - width: double.infinity, - child: Wrap( - alignment: WrapAlignment.spaceBetween, - children: [ - ...exams.asMap().entries.map((exam) { - return ExamCard( - name: exam.value.subject, - acronym: exam.value.subject, - rooms: exam.value.rooms, - type: exam.value.examType, - startTime: exam.value.startTime, - showIcon: false, - ); - }), - ], - ), +Widget buildExamsRow(BuildContext context, List exams) { + return Wrap( + spacing: 8, + children: exams.map((exam) { + return ExamCard( + name: exam.subject, + acronym: exam.subject, + rooms: exam.rooms, + type: exam.examType, + startTime: exam.startTime, + showIcon: false, + ); + }).toList(), ); } From 8a0d8fbe0fc321021a861cfd644001e37f923508 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Fri, 27 Dec 2024 13:53:49 +0000 Subject: [PATCH 17/32] Implemented exams row in course unit information --- .../widgets/course_unit_sheet.dart | 34 +++++++++++++------ packages/uni_ui/lib/cards/exam_card.dart | 1 + 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 0bfae9384..fcf1252a7 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -46,7 +46,16 @@ class CourseUnitSheetView extends StatelessWidget { 'Exams', style: TextStyle(fontSize: 20), ), - buildExamsRow(context, exams), + if (exams.isNotEmpty) ...[ + SizedBox( + height: 120, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: buildExamsRow(context, exams), + ), + ), + + ], _buildCard(S.of(context).program, courseUnitSheet.content, context), _buildCard( S.of(context).evaluation, @@ -201,16 +210,21 @@ Widget buildExpandedProfessors( } Widget buildExamsRow(BuildContext context, List exams) { - return Wrap( - spacing: 8, + return Row( children: exams.map((exam) { - return ExamCard( - name: exam.subject, - acronym: exam.subject, - rooms: exam.rooms, - type: exam.examType, - startTime: exam.startTime, - showIcon: false, + return Padding( + padding: const EdgeInsets.only(right: 8), + child: SizedBox( + width: 230, + child: ExamCard( + name: exam.subject, + acronym: exam.subject, + rooms: exam.rooms, + type: exam.examType, + startTime: exam.startTime, + showIcon: false, + ), + ), ); }).toList(), ); diff --git a/packages/uni_ui/lib/cards/exam_card.dart b/packages/uni_ui/lib/cards/exam_card.dart index a6f291c1a..d19d43e32 100644 --- a/packages/uni_ui/lib/cards/exam_card.dart +++ b/packages/uni_ui/lib/cards/exam_card.dart @@ -31,6 +31,7 @@ class ExamCard extends StatelessWidget { opacity: isInvisible ? 0.6 : 1.0, child: GenericCard( key: key, + color: Color.fromRGBO(255, 245, 243, 1), //TODO: Use theme child: Row( children: [ Expanded( From bc4a2f8afe3f233dc4cba80fd53894f09bc99855 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Fri, 27 Dec 2024 14:06:21 +0000 Subject: [PATCH 18/32] Fixed bug causing books to be cropped on the course unit page --- .../widgets/course_unit_sheet.dart | 74 +++++++++---------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index fcf1252a7..5b6c729c4 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -231,46 +231,42 @@ Widget buildExamsRow(BuildContext context, List exams) { } Widget buildBooksRow(BuildContext context, List books) { - return SizedBox( - height: 500, - width: double.infinity, - child: Wrap( - alignment: WrapAlignment.spaceBetween, - children: [ - ...books.asMap().entries.map((book) { - return FutureBuilder( - builder: (context, snapshot) { - return Padding( - padding: const EdgeInsets.only(left: 15, right: 15, top: 10), - child: Column( - children: [ - SizedBox( - width: 135, - height: 140, // adjust this value as needed - child: snapshot.data != null - ? Image(image: NetworkImage(snapshot.data!)) - : const Image( - image: AssetImage( - 'assets/images/book_placeholder.png', - ), + return Wrap( + alignment: WrapAlignment.spaceBetween, + children: [ + ...books.asMap().entries.map((book) { + return FutureBuilder( + builder: (context, snapshot) { + return Padding( + padding: const EdgeInsets.only(left: 15, right: 15, top: 10), + child: Column( + children: [ + SizedBox( + width: 135, + height: 140, // adjust this value as needed + child: snapshot.data != null + ? Image(image: NetworkImage(snapshot.data!)) + : const Image( + image: AssetImage( + 'assets/images/book_placeholder.png', ), + ), + ), + SizedBox( + width: 135, + child: Text( + book.value.title, + textAlign: TextAlign.center, ), - SizedBox( - width: 135, - child: Text( - book.value.title, - textAlign: TextAlign.center, - ), - ), - ], - ), - ); - }, - future: BookThumbFetcher().fetchBookThumb(book.value.isbn), - ); - }), - ], - ), + ), + ], + ), + ); + }, + future: BookThumbFetcher().fetchBookThumb(book.value.isbn), + ); + }), + ], ); } @@ -307,4 +303,4 @@ Widget _buildAvatar(AsyncSnapshot snapshot, double radius) { 'assets/images/profile_placeholder.png', ), ); -} +} \ No newline at end of file From 0789f7b54594a14200b265539701c1557ac06917 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Fri, 27 Dec 2024 21:52:55 +0000 Subject: [PATCH 19/32] Added date info to the exams widget --- packages/uni_app/lib/model/entities/exam.dart | 4 +++ .../widgets/course_unit_sheet.dart | 36 ++++++------------- packages/uni_ui/lib/cards/exam_card.dart | 21 +++++++++-- 3 files changed, 33 insertions(+), 28 deletions(-) diff --git a/packages/uni_app/lib/model/entities/exam.dart b/packages/uni_app/lib/model/entities/exam.dart index 280661e2d..5d7e62667 100644 --- a/packages/uni_app/lib/model/entities/exam.dart +++ b/packages/uni_app/lib/model/entities/exam.dart @@ -73,6 +73,10 @@ class Exam { .MONTHS[start.month - 1]; } + String monthAcronym(AppLocale locale) { + return DateFormat.MMM(locale.localeCode.languageCode).format(start); + } + String get startTime => formatTime(start); String get finishTime => formatTime(finish); diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 5b6c729c4..33a5a1138 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart'; import 'package:provider/provider.dart'; import 'package:uni/controller/fetchers/book_fetcher.dart'; +import 'package:uni/controller/local_storage/preferences_controller.dart'; import 'package:uni/generated/l10n.dart'; import 'package:uni/model/entities/course_units/sheet.dart'; import 'package:uni/model/entities/exam.dart'; @@ -27,25 +28,16 @@ class CourseUnitSheetView extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text( - 'Regentes', - style: TextStyle(fontSize: 20), - ), + const Text('Regentes',style: TextStyle(fontSize: 20),), buildRegentsRow(context, courseUnitSheet.regents), - const Text( - 'Docentes', - style: TextStyle(fontSize: 20), - ), + const Text('Docentes',style: TextStyle(fontSize: 20),), AnimatedExpandable( firstChild: buildProfessorsRow(context, courseUnitSheet.professors), secondChild: buildExpandedProfessors(context, courseUnitSheet.professors), ), - const Text( - 'Exams', - style: TextStyle(fontSize: 20), - ), + const Text('Exams',style: TextStyle(fontSize: 20),), if (exams.isNotEmpty) ...[ SizedBox( height: 120, @@ -57,20 +49,10 @@ class CourseUnitSheetView extends StatelessWidget { ], _buildCard(S.of(context).program, courseUnitSheet.content, context), - _buildCard( - S.of(context).evaluation, - courseUnitSheet.evaluation, - context, - ), + _buildCard(S.of(context).evaluation,courseUnitSheet.evaluation,context,), if (courseUnitSheet.books.isNotEmpty) ...[ - const Opacity( - opacity: 0.25, - child: Divider(color: Colors.grey), - ), - Text( - S.of(context).bibliography, - style: const TextStyle(fontSize: 20), - ), + const Opacity(opacity: 0.25,child: Divider(color: Colors.grey),), + Text(S.of(context).bibliography,style: const TextStyle(fontSize: 20),), buildBooksRow(context, courseUnitSheet.books), ], ], @@ -215,13 +197,15 @@ Widget buildExamsRow(BuildContext context, List exams) { return Padding( padding: const EdgeInsets.only(right: 8), child: SizedBox( - width: 230, + width: 260, child: ExamCard( name: exam.subject, acronym: exam.subject, rooms: exam.rooms, type: exam.examType, startTime: exam.startTime, + examDay: exam.start.day.toString(), + examMonth: exam.monthAcronym(PreferencesController.getLocale()), showIcon: false, ), ), diff --git a/packages/uni_ui/lib/cards/exam_card.dart b/packages/uni_ui/lib/cards/exam_card.dart index d19d43e32..3ac6e9ff2 100644 --- a/packages/uni_ui/lib/cards/exam_card.dart +++ b/packages/uni_ui/lib/cards/exam_card.dart @@ -14,6 +14,8 @@ class ExamCard extends StatelessWidget { this.isInvisible = false, this.showIcon = true, this.iconAction, + this.examDay, + this.examMonth, }); final String name; @@ -24,6 +26,8 @@ class ExamCard extends StatelessWidget { final bool isInvisible; final bool showIcon; final Function()? iconAction; + final String? examDay; + final String? examMonth; @override Widget build(BuildContext context) { @@ -31,7 +35,7 @@ class ExamCard extends StatelessWidget { opacity: isInvisible ? 0.6 : 1.0, child: GenericCard( key: key, - color: Color.fromRGBO(255, 245, 243, 1), //TODO: Use theme + color: const Color.fromRGBO(255, 245, 243, 1), //TODO: Use theme child: Row( children: [ Expanded( @@ -71,8 +75,21 @@ class ExamCard extends StatelessWidget { startTime ?? "--:--", style: Theme.of(context).textTheme.bodyMedium!, ), + if (examDay != null && examMonth != null) ...[ + const SizedBox(width: 8), + PhosphorIcon( + PhosphorIcons.calendarBlank(PhosphorIconsStyle.duotone), + color: Theme.of(context).iconTheme.color, + size: 20, + ), + const SizedBox(width: 4), + Text( + '$examDay $examMonth', + style: Theme.of(context).textTheme.bodyMedium!, + ), + ], const SizedBox(width: 8), - if (!rooms.isEmpty) + if (rooms.isNotEmpty) PhosphorIcon( PhosphorIcons.mapPin(PhosphorIconsStyle.duotone), color: Theme.of(context).iconTheme.color, From cc9b5f8ceee4620d2dfc119db29a6892f8d31ead Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Fri, 27 Dec 2024 22:12:00 +0000 Subject: [PATCH 20/32] Changed the format to pass the linter test --- .../course_unit_info/course_unit_info.dart | 4 +- .../widgets/course_unit_sheet.dart | 46 +++++++++++++------ .../widgets/modal_professor_info.dart | 5 +- 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 9f798cab9..fb341afaf 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -28,8 +28,7 @@ class CourseUnitDetailPageView extends StatefulWidget { class CourseUnitDetailPageViewState extends SecondaryPageViewState { - - List courseUnitExams = []; + List courseUnitExams = []; Future loadInfo({required bool force}) async { final courseUnitsProvider = @@ -63,7 +62,6 @@ class CourseUnitDetailPageViewState ); } - final examProvider = Provider.of(context, listen: false); courseUnitExams = examProvider.getExamsForCourseUnit(widget.courseUnit); } diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 33a5a1138..c5592850c 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -28,31 +28,49 @@ class CourseUnitSheetView extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text('Regentes',style: TextStyle(fontSize: 20),), + const Text( + 'Regentes', + style: TextStyle(fontSize: 20), + ), buildRegentsRow(context, courseUnitSheet.regents), - const Text('Docentes',style: TextStyle(fontSize: 20),), + const Text( + 'Docentes', + style: TextStyle(fontSize: 20), + ), AnimatedExpandable( firstChild: buildProfessorsRow(context, courseUnitSheet.professors), secondChild: buildExpandedProfessors(context, courseUnitSheet.professors), ), - const Text('Exams',style: TextStyle(fontSize: 20),), + const Text( + 'Exams', + style: TextStyle(fontSize: 20), + ), if (exams.isNotEmpty) ...[ - SizedBox( - height: 120, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: buildExamsRow(context, exams), - ), + SizedBox( + height: 120, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: buildExamsRow(context, exams), ), - + ), ], _buildCard(S.of(context).program, courseUnitSheet.content, context), - _buildCard(S.of(context).evaluation,courseUnitSheet.evaluation,context,), + _buildCard( + S.of(context).evaluation, + courseUnitSheet.evaluation, + context, + ), if (courseUnitSheet.books.isNotEmpty) ...[ - const Opacity(opacity: 0.25,child: Divider(color: Colors.grey),), - Text(S.of(context).bibliography,style: const TextStyle(fontSize: 20),), + const Opacity( + opacity: 0.25, + child: Divider(color: Colors.grey), + ), + Text( + S.of(context).bibliography, + style: const TextStyle(fontSize: 20), + ), buildBooksRow(context, courseUnitSheet.books), ], ], @@ -287,4 +305,4 @@ Widget _buildAvatar(AsyncSnapshot snapshot, double radius) { 'assets/images/profile_placeholder.png', ), ); -} \ No newline at end of file +} diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart index 33e4dbb37..e5b188d52 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart @@ -8,7 +8,6 @@ import 'package:uni/model/providers/startup/session_provider.dart'; import 'package:uni_ui/icons.dart'; import 'package:uni_ui/modal/modal.dart'; - class ProfessorInfoModal extends StatelessWidget { const ProfessorInfoModal(this.professor, {super.key}); final MapEntry professor; @@ -48,7 +47,7 @@ class ProfessorInfoModal extends StatelessWidget { PhosphorIcon( UniIcons.email, color: Theme.of(context).colorScheme.primary, - duotoneSecondaryColor: Colors.red, + duotoneSecondaryColor: Colors.red, size: 32, ), const Padding( @@ -78,7 +77,7 @@ class ProfessorInfoModal extends StatelessWidget { PhosphorIcon( UniIcons.location, color: Theme.of(context).colorScheme.primary, - duotoneSecondaryColor: Colors.red, + duotoneSecondaryColor: Colors.red, size: 32, ), const Padding( From 8ff66e72edf60480d52c1979c552ba8f3679ff07 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Fri, 27 Dec 2024 23:14:04 +0000 Subject: [PATCH 21/32] Updated the way we use the icons --- .../widgets/course_unit_sheet.dart | 4 +-- packages/uni_ui/lib/cards/exam_card.dart | 31 ++++++++++++------- packages/uni_ui/lib/icons.dart | 29 ++++++++++++++++- packages/uni_ui/lib/tabs/tab_icon.dart | 6 ++-- 4 files changed, 52 insertions(+), 18 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index c5592850c..f3c70621c 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -49,7 +49,7 @@ class CourseUnitSheetView extends StatelessWidget { ), if (exams.isNotEmpty) ...[ SizedBox( - height: 120, + height: 100, child: SingleChildScrollView( scrollDirection: Axis.horizontal, child: buildExamsRow(context, exams), @@ -215,7 +215,7 @@ Widget buildExamsRow(BuildContext context, List exams) { return Padding( padding: const EdgeInsets.only(right: 8), child: SizedBox( - width: 260, + width: 240, child: ExamCard( name: exam.subject, acronym: exam.subject, diff --git a/packages/uni_ui/lib/cards/exam_card.dart b/packages/uni_ui/lib/cards/exam_card.dart index 5ec975d90..a7c81fe6c 100644 --- a/packages/uni_ui/lib/cards/exam_card.dart +++ b/packages/uni_ui/lib/cards/exam_card.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:phosphor_flutter/phosphor_flutter.dart'; import 'package:uni_ui/cards/generic_card.dart'; import 'package:uni_ui/theme.dart'; +import 'package:uni_ui/icons.dart'; class ExamCard extends StatelessWidget { const ExamCard({ @@ -29,6 +29,13 @@ class ExamCard extends StatelessWidget { final String? examDay; final String? examMonth; + static const Map examTypeColors = { + 'MT': BadgeColors.mt, + 'EN': BadgeColors.en, + 'ER': BadgeColors.er, + 'EE': BadgeColors.ee, + }; + @override Widget build(BuildContext context) { return Opacity( @@ -52,7 +59,7 @@ class ExamCard extends StatelessWidget { const SizedBox(width: 8), Badge( label: Text(type), - backgroundColor: BadgeColors.er, + backgroundColor: examTypeColors[type], textColor: Theme.of(context).colorScheme.surface, ), ], @@ -65,8 +72,8 @@ class ExamCard extends StatelessWidget { const SizedBox(height: 5), Row( children: [ - PhosphorIcon( - PhosphorIcons.clock(PhosphorIconsStyle.duotone), + UniIcon( + UniIcons.clock, color: Theme.of(context).iconTheme.color, size: 20, ), @@ -77,8 +84,8 @@ class ExamCard extends StatelessWidget { ), if (examDay != null && examMonth != null) ...[ const SizedBox(width: 8), - PhosphorIcon( - PhosphorIcons.calendarBlank(PhosphorIconsStyle.duotone), + UniIcon( + UniIcons.calendarBlank, color: Theme.of(context).iconTheme.color, size: 20, ), @@ -90,8 +97,8 @@ class ExamCard extends StatelessWidget { ], const SizedBox(width: 8), if (rooms.isNotEmpty) - PhosphorIcon( - PhosphorIcons.mapPin(PhosphorIconsStyle.duotone), + UniIcon( + UniIcons.mapPin, color: Theme.of(context).iconTheme.color, size: 20, ), @@ -125,10 +132,10 @@ class ExamCard extends StatelessWidget { if (showIcon) IconButton( onPressed: iconAction ?? () {}, - icon: PhosphorIcon( + icon: UniIcon( isInvisible - ? PhosphorIcons.eye(PhosphorIconsStyle.duotone) - : PhosphorIcons.eyeSlash(PhosphorIconsStyle.duotone), + ? UniIcons.eyeVisible + : UniIcons.eyeHidden, color: Theme.of(context).iconTheme.color, size: 35, ), @@ -138,4 +145,4 @@ class ExamCard extends StatelessWidget { ), ); } -} +} \ No newline at end of file diff --git a/packages/uni_ui/lib/icons.dart b/packages/uni_ui/lib/icons.dart index 3666b6561..45edc851b 100644 --- a/packages/uni_ui/lib/icons.dart +++ b/packages/uni_ui/lib/icons.dart @@ -1,12 +1,39 @@ +import 'package:flutter/material.dart'; import 'package:phosphor_flutter/phosphor_flutter.dart'; +// A list of all available icons class UniIcons { - static const calendar = PhosphorIconsDuotone.calendarDots; + static const lecture = PhosphorIconsDuotone.lectern; static const exam = PhosphorIconsDuotone.exam; + static const course = PhosphorIconsDuotone.certificate; + static const calendar = PhosphorIconsDuotone.calendarDots; static const courses = PhosphorIconsDuotone.certificate; static const classes = PhosphorIconsDuotone.usersThree; static const files = PhosphorIconsDuotone.folderOpen; static const notebook = PhosphorIconsDuotone.notebook; static const email = PhosphorIconsDuotone.paperPlaneTilt; static const location = PhosphorIconsDuotone.mapPin; + static const clock = PhosphorIconsDuotone.clock; + static const calendarBlank = PhosphorIconsDuotone.calendarBlank; + static const mapPin = PhosphorIconsDuotone.mapPin; + static const eyeVisible = PhosphorIconsDuotone.eye; + static const eyeHidden = PhosphorIconsDuotone.eyeSlash; } + +// The same as default Icon class from material.dart but allowing to use PhosphorIcons duotone icons +class UniIcon extends PhosphorIcon { + const UniIcon( + IconData icon, { + super.key, + double size = 24, + Color? color, + String? semanticLabel, + TextDirection? textDirection, + }) : super( + icon, + size: size, + color: color, + semanticLabel: semanticLabel, + textDirection: textDirection, + ); +} \ No newline at end of file diff --git a/packages/uni_ui/lib/tabs/tab_icon.dart b/packages/uni_ui/lib/tabs/tab_icon.dart index c49e825f7..4f8190f0d 100644 --- a/packages/uni_ui/lib/tabs/tab_icon.dart +++ b/packages/uni_ui/lib/tabs/tab_icon.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:uni_ui/icons.dart'; class TabIcon extends StatelessWidget { const TabIcon({ @@ -13,15 +14,14 @@ class TabIcon extends StatelessWidget { @override Widget build(BuildContext context) { return Tab( - height: 30, child: Row( mainAxisSize: MainAxisSize.min, children: [ - Icon(icon), + UniIcon(icon), const SizedBox(width: 4), Text(text), ], ), ); } -} +} \ No newline at end of file From df17ed313c12ddadd3b949bfb1ef09f2f07f6855 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Sat, 28 Dec 2024 00:28:52 +0000 Subject: [PATCH 22/32] Started working on the new professors widget --- .../widgets/course_unit_sheet.dart | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index f3c70621c..bc072ba3b 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -32,7 +32,8 @@ class CourseUnitSheetView extends StatelessWidget { 'Regentes', style: TextStyle(fontSize: 20), ), - buildRegentsRow(context, courseUnitSheet.regents), + buildIntructorsRow(context, courseUnitSheet.professors), + /* const Text( 'Docentes', style: TextStyle(fontSize: 20), @@ -42,9 +43,13 @@ class CourseUnitSheetView extends StatelessWidget { buildProfessorsRow(context, courseUnitSheet.professors), secondChild: buildExpandedProfessors(context, courseUnitSheet.professors), - ), + ),*/ + const Opacity( + opacity: 0.25, + ), const Text( 'Exams', + 'Assessments', style: TextStyle(fontSize: 20), ), if (exams.isNotEmpty) ...[ @@ -54,8 +59,10 @@ class CourseUnitSheetView extends StatelessWidget { scrollDirection: Axis.horizontal, child: buildExamsRow(context, exams), ), + child: buildExamsRow(context, exams), ), ], + //], _buildCard(S.of(context).program, courseUnitSheet.content, context), _buildCard( S.of(context).evaluation, @@ -80,6 +87,36 @@ class CourseUnitSheetView extends StatelessWidget { } } + ), + ), + const SizedBox(width: 8), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + child: Text( + instructor.name, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + ), + overflow: TextOverflow.ellipsis, + ), + ), + const Text( + 'Lead Instructor', + style: TextStyle(fontSize: 12, color: Colors.grey), + ), + ], + ), + ], + ), + ); + }).toList(), + ); +} + + Widget buildRegentsRow(BuildContext context, List regents) { final session = context.read().state!; return SizedBox( From ca22403d896b6515a0befb07353935424bd7bd4e Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Sat, 28 Dec 2024 01:31:13 +0000 Subject: [PATCH 23/32] Started the logic of expanded/collapsed instructors --- .../widgets/course_unit_sheet.dart | 355 ++++++++++-------- 1 file changed, 201 insertions(+), 154 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index bc072ba3b..bb3ea3b2c 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -1,3 +1,4 @@ +import 'dart:ffi'; import 'dart:io'; import 'package:flutter/material.dart'; @@ -29,40 +30,33 @@ class CourseUnitSheetView extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( - 'Regentes', + 'Instructors', style: TextStyle(fontSize: 20), ), - buildIntructorsRow(context, courseUnitSheet.professors), - /* - const Text( - 'Docentes', - style: TextStyle(fontSize: 20), - ), - AnimatedExpandable( - firstChild: - buildProfessorsRow(context, courseUnitSheet.professors), - secondChild: - buildExpandedProfessors(context, courseUnitSheet.professors), - ),*/ - const Opacity( - opacity: 0.25, + if (courseUnitSheet.professors.length <= 4) + buildInstructorsRow(context, courseUnitSheet.professors) + else + AnimatedExpandable( + firstChild: buildLimitedInstructorsRow( + context, courseUnitSheet.professors), + secondChild: + buildInstructorsRow(context, courseUnitSheet.professors), ), + const Opacity( + opacity: 0.25, + child: Divider(color: Colors.grey), + ), const Text( - 'Exams', 'Assessments', style: TextStyle(fontSize: 20), ), - if (exams.isNotEmpty) ...[ - SizedBox( - height: 100, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: buildExamsRow(context, exams), - ), + SizedBox( + height: 100, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, child: buildExamsRow(context, exams), ), - ], - //], + ), _buildCard(S.of(context).program, courseUnitSheet.content, context), _buildCard( S.of(context).evaluation, @@ -87,6 +81,127 @@ class CourseUnitSheetView extends StatelessWidget { } } +Widget buildLimitedInstructorsRow( + BuildContext context, List instructors) { + final session = context.read().state!; + final firstThree = instructors.take(3).toList(); + final remaining = instructors.skip(3).toList(); + + List children = []; + for (final instructor in firstThree) { + children.add(Container( + padding: const EdgeInsets.all(8.0), + decoration: BoxDecoration( + color: const Color.fromRGBO(255, 245, 243, 1), + borderRadius: BorderRadius.circular(8.0), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + FutureBuilder( + builder: (context, snapshot) => _buildAvatar(snapshot, 20), + future: ProfileProvider.fetchOrGetCachedProfilePicture( + session, + studentNumber: int.parse(instructor.code), + ), + ), + const SizedBox(width: 8), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + width: 100, + child: Text( + instructor.name, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + ), + overflow: TextOverflow.ellipsis, + ), + ), + const Text( + 'Lead Instructor', + style: TextStyle(fontSize: 12, color: Colors.grey), + ), + ], + ), + ], + ), + )); + } + + if (remaining.isNotEmpty) { + children.add( + Container( + padding: const EdgeInsets.all(8.0), + decoration: BoxDecoration( + color: const Color.fromRGBO(255, 245, 243, 1), + borderRadius: BorderRadius.circular(8.0), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + width: 70, + height: 40, + child: Stack( // Use Stack for overlapping + children: remaining.asMap().entries.map((entry) { + final index = entry.key; + final instructor = entry.value; + return Positioned( + left: index * 24.0, // Adjust this value for desired overlap + child: FutureBuilder( + builder: (context, snapshot) => _buildAvatar(snapshot, 20), + future: ProfileProvider.fetchOrGetCachedProfilePicture( + session, + studentNumber: int.parse(instructor.code), + ), + ), + ); + }).toList(), + ), + ), + const SizedBox(width: 8), + Text( + '+${remaining.length} more', + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500), + ), + ], + ), + ), + ); + } + + return Wrap( + spacing: 8.0, + runSpacing: 4.0, + children: children, + ); +} + +Widget buildInstructorsRow( + BuildContext context, List instructors) { + final session = context.read().state!; + return Wrap( + spacing: 8.0, + runSpacing: 4.0, + children: instructors.map((instructor) { + return Container( + padding: const EdgeInsets.all(8.0), + decoration: BoxDecoration( + color: const Color.fromRGBO(255, 245, 243, 1), + borderRadius: BorderRadius.circular(8.0), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + FutureBuilder( + builder: (context, snapshot) => _buildAvatar(snapshot, 20), + future: ProfileProvider.fetchOrGetCachedProfilePicture( + session, + studentNumber: int.parse(instructor.code), ), ), const SizedBox(width: 8), @@ -94,6 +209,8 @@ class CourseUnitSheetView extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ + SizedBox( + width: 100, child: Text( instructor.name, style: const TextStyle( @@ -116,137 +233,67 @@ class CourseUnitSheetView extends StatelessWidget { ); } +Widget buildExamsRow(BuildContext context, List exams) { + bool isMock = false; -Widget buildRegentsRow(BuildContext context, List regents) { - final session = context.read().state!; - return SizedBox( - height: (regents.length * 80) + 20, - width: double.infinity, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ...regents.asMap().entries.map((regent) { - final idx = regent.key; - return Padding( - padding: EdgeInsets.only(bottom: idx == regents.length - 1 ? 0 : 5), - child: GestureDetector( - onTap: () { - showDialog( - context: context, - builder: (context) => ProfessorInfoModal(regent), - ); - }, - child: Row( - children: [ - FutureBuilder( - builder: (context, snapshot) => _buildAvatar(snapshot, 40), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(regent.value.code), - ), - ), - Padding( - padding: const EdgeInsets.only( - left: 10, - right: 10, - ), - child: Text( - regent.value.name, - style: const TextStyle(fontSize: 17), - textAlign: TextAlign.center, - ), - ), - ], - ), - ), - ); - }), - ], - ), - ); -} - -Widget buildProfessorsRow(BuildContext context, List professors) { - final session = context.read().state!; - return SizedBox( - height: 55, - width: double.infinity, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - children: [ - ...professors.asMap().entries.map((professor) { - final idx = professor.key; - return FutureBuilder( - builder: (context, snapshot) => Transform.translate( - offset: Offset(-10.0 * idx, 0), - child: _buildAvatar(snapshot, 20), - ), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(professor.value.code), - ), - ); - }), - ], + if (isMock) { + final List mockExams = [ + Exam( + 'mock1', + DateTime(2024, 12, 10, 9, 0), + DateTime(2024, 12, 10, 11, 0), + 'SDLE', + ['B315', 'B224', 'B207'], + 'MT', + 'Faculty of Science', ), - ), - ); -} - -Widget buildExpandedProfessors( - BuildContext context, - List professors, -) { - final session = context.read().state!; - return SizedBox( - height: (professors.length * 45) + 10, - width: double.infinity, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ...professors.asMap().entries.map((professor) { - final idx = professor.key; - return Padding( - padding: - EdgeInsets.only(bottom: idx == professors.length - 1 ? 0 : 5), - child: GestureDetector( - onTap: () { - showDialog( - context: context, - builder: (context) => ProfessorInfoModal(professor), - ); - }, - child: Row( - children: [ - FutureBuilder( - builder: (context, snapshot) => _buildAvatar(snapshot, 20), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(professor.value.code), - ), - ), - Padding( - padding: const EdgeInsets.only( - left: 10, - ), - child: Text( - professor.value.name, - style: const TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - ), - ], - ), + Exam( + 'mock2', + DateTime(2025, 01, 15, 14, 30), + DateTime(2025, 01, 15, 16, 00), + 'SDLE', + ['B315', 'B224', 'B207'], + 'EN', + 'Faculty of Science', + ), + Exam( + 'mock3', + DateTime(2025, 02, 20, 10, 00), + DateTime(2025, 02, 20, 12, 30), + 'SDLE', + ['FC4126'], + 'ER', + 'Faculty of Science', + ), + ]; + return Row( + children: mockExams.map((exam) { + return Padding( + padding: const EdgeInsets.only(right: 8), + child: SizedBox( + width: 240, + child: ExamCard( + name: 'Sistemas Distribuídos de Larga Escala', + acronym: exam.subject, + rooms: exam.rooms, + type: exam.examType, + startTime: exam.startTime, + examDay: exam.start.day.toString(), + examMonth: exam.monthAcronym(PreferencesController.getLocale()), + showIcon: false, ), - ); - }), - ], - ), - ); -} + ), + ); + }).toList(), + ); + } + + if(exams.isEmpty) { + return const Center( + child: Text('No exams scheduled'), + ); + } -Widget buildExamsRow(BuildContext context, List exams) { return Row( children: exams.map((exam) { return Padding( @@ -282,7 +329,7 @@ Widget buildBooksRow(BuildContext context, List books) { children: [ SizedBox( width: 135, - height: 140, // adjust this value as needed + height: 140, child: snapshot.data != null ? Image(image: NetworkImage(snapshot.data!)) : const Image( @@ -342,4 +389,4 @@ Widget _buildAvatar(AsyncSnapshot snapshot, double radius) { 'assets/images/profile_placeholder.png', ), ); -} +} \ No newline at end of file From 32bb719eb9340ed896e6018f91953fc5ec3bbe6b Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Sat, 28 Dec 2024 01:46:22 +0000 Subject: [PATCH 24/32] Extracted some logic from buildIntructorsRow --- .../widgets/course_unit_sheet.dart | 452 ++++++++---------- .../widgets/modal_professor_info.dart | 6 +- packages/uni_ui/lib/cards/exam_card.dart | 6 +- packages/uni_ui/lib/icons.dart | 2 +- packages/uni_ui/lib/tabs/tab_icon.dart | 2 +- packages/uni_ui/lib/timeline/timeline.dart | 2 +- 6 files changed, 218 insertions(+), 252 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index bb3ea3b2c..006e4a37b 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -15,6 +15,7 @@ import 'package:uni/view/common_widgets/generic_animated_expandable.dart'; import 'package:uni/view/common_widgets/generic_expandable.dart'; import 'package:uni/view/course_unit_info/widgets/modal_professor_info.dart'; import 'package:uni_ui/cards/exam_card.dart'; +import 'package:uni_ui/theme.dart'; class CourseUnitSheetView extends StatelessWidget { const CourseUnitSheetView(this.courseUnitSheet, this.exams, {super.key}); @@ -34,13 +35,13 @@ class CourseUnitSheetView extends StatelessWidget { style: TextStyle(fontSize: 20), ), if (courseUnitSheet.professors.length <= 4) - buildInstructorsRow(context, courseUnitSheet.professors) + _buildInstructorsRow(context, courseUnitSheet.professors) else AnimatedExpandable( - firstChild: buildLimitedInstructorsRow( + firstChild: _buildLimitedInstructorsRow( context, courseUnitSheet.professors), secondChild: - buildInstructorsRow(context, courseUnitSheet.professors), + _buildInstructorsRow(context, courseUnitSheet.professors), ), const Opacity( opacity: 0.25, @@ -54,7 +55,7 @@ class CourseUnitSheetView extends StatelessWidget { height: 100, child: SingleChildScrollView( scrollDirection: Axis.horizontal, - child: buildExamsRow(context, exams), + child: _buildExamsRow(context, exams), ), ), _buildCard(S.of(context).program, courseUnitSheet.content, context), @@ -72,123 +73,82 @@ class CourseUnitSheetView extends StatelessWidget { S.of(context).bibliography, style: const TextStyle(fontSize: 20), ), - buildBooksRow(context, courseUnitSheet.books), + _buildBooksRow(context, courseUnitSheet.books), ], ], ), ), ); } -} -Widget buildLimitedInstructorsRow( - BuildContext context, List instructors) { - final session = context.read().state!; - final firstThree = instructors.take(3).toList(); - final remaining = instructors.skip(3).toList(); + Widget _buildLimitedInstructorsRow( + BuildContext context, List instructors) { + final firstThree = instructors.take(3).toList(); + final remaining = instructors.skip(3).toList(); - List children = []; - for (final instructor in firstThree) { - children.add(Container( - padding: const EdgeInsets.all(8.0), - decoration: BoxDecoration( - color: const Color.fromRGBO(255, 245, 243, 1), - borderRadius: BorderRadius.circular(8.0), - ), - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - FutureBuilder( - builder: (context, snapshot) => _buildAvatar(snapshot, 20), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(instructor.code), + return Wrap( + spacing: 8.0, + runSpacing: 4.0, + children: [ + ...firstThree + .map((instructor) => _buildInstructorWidget(context, instructor)), + if (remaining.isNotEmpty) + Container( + padding: const EdgeInsets.all(8.0), + decoration: BoxDecoration( + color: const Color.fromRGBO(255, 245, 243, 1), + borderRadius: BorderRadius.circular(8.0), ), - ), - const SizedBox(width: 8), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - SizedBox( - width: 100, - child: Text( - instructor.name, - style: const TextStyle( - fontSize: 14, - fontWeight: FontWeight.w500, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + width: 70, + height: 40, + child: Stack( + children: remaining.asMap().entries.map((entry) { + final index = entry.key; + final instructor = entry.value; + return Positioned( + left: index * 20.0, + child: _InstructorAvatar(instructor: instructor), + ); + }).toList(), ), - overflow: TextOverflow.ellipsis, ), - ), - const Text( - 'Lead Instructor', - style: TextStyle(fontSize: 12, color: Colors.grey), - ), - ], + const SizedBox(width: 8), + Text( + '+${remaining.length} more', + style: const TextStyle( + fontSize: 14, fontWeight: FontWeight.w500), + ), + ], + ), ), - ], - ), - )); + ], + ); } - if (remaining.isNotEmpty) { - children.add( - Container( - padding: const EdgeInsets.all(8.0), - decoration: BoxDecoration( - color: const Color.fromRGBO(255, 245, 243, 1), - borderRadius: BorderRadius.circular(8.0), - ), - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - SizedBox( - width: 70, - height: 40, - child: Stack( // Use Stack for overlapping - children: remaining.asMap().entries.map((entry) { - final index = entry.key; - final instructor = entry.value; - return Positioned( - left: index * 24.0, // Adjust this value for desired overlap - child: FutureBuilder( - builder: (context, snapshot) => _buildAvatar(snapshot, 20), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(instructor.code), - ), - ), - ); - }).toList(), - ), - ), - const SizedBox(width: 8), - Text( - '+${remaining.length} more', - style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500), - ), - ], - ), - ), + Widget _buildInstructorsRow( + BuildContext context, List instructors) { + return Wrap( + spacing: 8.0, + runSpacing: 4.0, + children: instructors + .map((instructor) => _buildInstructorWidget(context, instructor)) + .toList(), ); } - return Wrap( - spacing: 8.0, - runSpacing: 4.0, - children: children, - ); -} - -Widget buildInstructorsRow( - BuildContext context, List instructors) { - final session = context.read().state!; - return Wrap( - spacing: 8.0, - runSpacing: 4.0, - children: instructors.map((instructor) { - return Container( + Widget _buildInstructorWidget(BuildContext context, Professor instructor) { + return GestureDetector( + onTap: () { + showDialog( + context: context, + builder: (context) => ProfessorInfoModal(instructor), + ); + }, + child: Container( padding: const EdgeInsets.all(8.0), decoration: BoxDecoration( color: const Color.fromRGBO(255, 245, 243, 1), @@ -197,13 +157,7 @@ Widget buildInstructorsRow( child: Row( mainAxisSize: MainAxisSize.min, children: [ - FutureBuilder( - builder: (context, snapshot) => _buildAvatar(snapshot, 20), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(instructor.code), - ), - ), + _InstructorAvatar(instructor: instructor), const SizedBox(width: 8), Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -228,52 +182,79 @@ Widget buildInstructorsRow( ), ], ), - ); - }).toList(), - ); -} + ), + ); + } -Widget buildExamsRow(BuildContext context, List exams) { - bool isMock = false; + Widget _buildExamsRow(BuildContext context, List exams) { + bool isMock = false; - if (isMock) { + if (isMock) { final List mockExams = [ - Exam( - 'mock1', - DateTime(2024, 12, 10, 9, 0), - DateTime(2024, 12, 10, 11, 0), - 'SDLE', - ['B315', 'B224', 'B207'], - 'MT', - 'Faculty of Science', - ), - Exam( - 'mock2', - DateTime(2025, 01, 15, 14, 30), - DateTime(2025, 01, 15, 16, 00), - 'SDLE', - ['B315', 'B224', 'B207'], - 'EN', - 'Faculty of Science', - ), - Exam( - 'mock3', - DateTime(2025, 02, 20, 10, 00), - DateTime(2025, 02, 20, 12, 30), - 'SDLE', - ['FC4126'], - 'ER', - 'Faculty of Science', - ), - ]; + Exam( + 'mock1', + DateTime(2024, 12, 10, 9, 0), + DateTime(2024, 12, 10, 11, 0), + 'RCOM', + ['B315', 'B224', 'B207'], + 'MT', + 'Faculty of Science', + ), + Exam( + 'RCOM', + DateTime(2025, 01, 15, 14, 30), + DateTime(2025, 01, 15, 16, 00), + 'SDLE', + ['B315', 'B224', 'B207'], + 'EN', + 'Faculty of Science', + ), + Exam( + 'RCOM', + DateTime(2025, 02, 20, 10, 00), + DateTime(2025, 02, 20, 12, 30), + 'SDLE', + ['FC4126'], + 'ER', + 'Faculty of Science', + ), + ]; + return Row( + children: mockExams.map((exam) { + return Padding( + padding: const EdgeInsets.only(right: 8), + child: SizedBox( + width: 240, + child: ExamCard( + name: 'Redes de Computadores', + acronym: exam.subject, + rooms: exam.rooms, + type: exam.examType, + startTime: exam.startTime, + examDay: exam.start.day.toString(), + examMonth: exam.monthAcronym(PreferencesController.getLocale()), + showIcon: false, + ), + ), + ); + }).toList(), + ); + } + + if (exams.isEmpty) { + return const Center( + child: Text('No exams scheduled'), + ); + } + return Row( - children: mockExams.map((exam) { + children: exams.map((exam) { return Padding( padding: const EdgeInsets.only(right: 8), child: SizedBox( width: 240, child: ExamCard( - name: 'Sistemas Distribuídos de Larga Escala', + name: exam.subject, acronym: exam.subject, rooms: exam.rooms, type: exam.examType, @@ -288,105 +269,92 @@ Widget buildExamsRow(BuildContext context, List exams) { ); } - if(exams.isEmpty) { - return const Center( - child: Text('No exams scheduled'), + Widget _buildBooksRow(BuildContext context, List books) { + return Wrap( + alignment: WrapAlignment.spaceBetween, + children: [ + ...books.asMap().entries.map((book) { + return FutureBuilder( + builder: (context, snapshot) { + return Padding( + padding: const EdgeInsets.only(left: 15, right: 15, top: 10), + child: Column( + children: [ + SizedBox( + width: 135, + height: 140, + child: snapshot.data != null + ? Image(image: NetworkImage(snapshot.data!)) + : const Image( + image: AssetImage( + 'assets/images/book_placeholder.png', + ), + ), + ), + SizedBox( + width: 135, + child: Text( + book.value.title, + textAlign: TextAlign.center, + ), + ), + ], + ), + ); + }, + future: BookThumbFetcher().fetchBookThumb(book.value.isbn), + ); + }), + ], ); } - return Row( - children: exams.map((exam) { - return Padding( - padding: const EdgeInsets.only(right: 8), - child: SizedBox( - width: 240, - child: ExamCard( - name: exam.subject, - acronym: exam.subject, - rooms: exam.rooms, - type: exam.examType, - startTime: exam.startTime, - examDay: exam.start.day.toString(), - examMonth: exam.monthAcronym(PreferencesController.getLocale()), - showIcon: false, + Widget _buildCard( + String sectionTitle, + String sectionContent, + BuildContext context, + ) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + children: [ + const Opacity( + opacity: 0.25, + child: Divider(color: Colors.grey), ), - ), - ); - }).toList(), - ); + GenericExpandable( + content: HtmlWidget( + sectionContent != 'null' ? sectionContent : S.of(context).no_info, + ), + title: sectionTitle, + ), + ], + ), + ); + } } -Widget buildBooksRow(BuildContext context, List books) { - return Wrap( - alignment: WrapAlignment.spaceBetween, - children: [ - ...books.asMap().entries.map((book) { - return FutureBuilder( - builder: (context, snapshot) { - return Padding( - padding: const EdgeInsets.only(left: 15, right: 15, top: 10), - child: Column( - children: [ - SizedBox( - width: 135, - height: 140, - child: snapshot.data != null - ? Image(image: NetworkImage(snapshot.data!)) - : const Image( - image: AssetImage( - 'assets/images/book_placeholder.png', - ), - ), - ), - SizedBox( - width: 135, - child: Text( - book.value.title, - textAlign: TextAlign.center, - ), - ), - ], - ), - ); - }, - future: BookThumbFetcher().fetchBookThumb(book.value.isbn), - ); - }), - ], - ); -} +class _InstructorAvatar extends StatelessWidget { + const _InstructorAvatar({required this.instructor}); -Widget _buildCard( - String sectionTitle, - String sectionContent, - BuildContext context, -) { - return Padding( - padding: const EdgeInsets.symmetric(vertical: 8), - child: Column( - children: [ - const Opacity( - opacity: 0.25, - child: Divider(color: Colors.grey), - ), - GenericExpandable( - content: HtmlWidget( - sectionContent != 'null' ? sectionContent : S.of(context).no_info, - ), - title: sectionTitle, - ), - ], - ), - ); -} + final Professor instructor; -Widget _buildAvatar(AsyncSnapshot snapshot, double radius) { - return CircleAvatar( - radius: radius, - backgroundImage: snapshot.hasData && snapshot.data != null - ? FileImage(snapshot.data!) as ImageProvider - : const AssetImage( - 'assets/images/profile_placeholder.png', - ), - ); -} \ No newline at end of file + @override + Widget build(BuildContext context) { + final session = Provider.of(context, listen: false).state!; + return FutureBuilder( + builder: (context, snapshot) => CircleAvatar( + radius: 20, + backgroundImage: snapshot.hasData && snapshot.data != null + ? FileImage(snapshot.data!) as ImageProvider + : const AssetImage( + 'assets/images/profile_placeholder.png', + ), + ), + future: ProfileProvider.fetchOrGetCachedProfilePicture( + session, + studentNumber: int.parse(instructor.code), + ), + ); + } +} diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart index e5b188d52..8721c679e 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart @@ -10,7 +10,7 @@ import 'package:uni_ui/modal/modal.dart'; class ProfessorInfoModal extends StatelessWidget { const ProfessorInfoModal(this.professor, {super.key}); - final MapEntry professor; + final Professor professor; @override Widget build(BuildContext context) { @@ -30,12 +30,12 @@ class ProfessorInfoModal extends StatelessWidget { ), future: ProfileProvider.fetchOrGetCachedProfilePicture( session, - studentNumber: int.parse(professor.value.code), + studentNumber: int.parse(professor.code), ), ), const SizedBox(height: 10), Text( - professor.value.name, + professor.name, style: Theme.of(context).textTheme.headlineMedium, ), const Opacity( diff --git a/packages/uni_ui/lib/cards/exam_card.dart b/packages/uni_ui/lib/cards/exam_card.dart index a7c81fe6c..b8b54ad75 100644 --- a/packages/uni_ui/lib/cards/exam_card.dart +++ b/packages/uni_ui/lib/cards/exam_card.dart @@ -133,9 +133,7 @@ class ExamCard extends StatelessWidget { IconButton( onPressed: iconAction ?? () {}, icon: UniIcon( - isInvisible - ? UniIcons.eyeVisible - : UniIcons.eyeHidden, + isInvisible ? UniIcons.eyeVisible : UniIcons.eyeHidden, color: Theme.of(context).iconTheme.color, size: 35, ), @@ -145,4 +143,4 @@ class ExamCard extends StatelessWidget { ), ); } -} \ No newline at end of file +} diff --git a/packages/uni_ui/lib/icons.dart b/packages/uni_ui/lib/icons.dart index 45edc851b..1ee1fb8a6 100644 --- a/packages/uni_ui/lib/icons.dart +++ b/packages/uni_ui/lib/icons.dart @@ -36,4 +36,4 @@ class UniIcon extends PhosphorIcon { semanticLabel: semanticLabel, textDirection: textDirection, ); -} \ No newline at end of file +} diff --git a/packages/uni_ui/lib/tabs/tab_icon.dart b/packages/uni_ui/lib/tabs/tab_icon.dart index 4f8190f0d..9b45aa9e8 100644 --- a/packages/uni_ui/lib/tabs/tab_icon.dart +++ b/packages/uni_ui/lib/tabs/tab_icon.dart @@ -24,4 +24,4 @@ class TabIcon extends StatelessWidget { ), ); } -} \ No newline at end of file +} diff --git a/packages/uni_ui/lib/timeline/timeline.dart b/packages/uni_ui/lib/timeline/timeline.dart index 2c4590927..8ac5b68ed 100644 --- a/packages/uni_ui/lib/timeline/timeline.dart +++ b/packages/uni_ui/lib/timeline/timeline.dart @@ -129,7 +129,7 @@ class _TimelineState extends State { child: ScrollablePositionedList.builder( itemCount: widget.content.length, itemScrollController: _itemScrollController, - itemPositionsListener: _itemPositionsListener, + itemPositionsListener: _itemPositionsListener, itemBuilder: (context, index) { return widget.content[index]; }, From 7ae22abf9a8ac303baceee26fbc51bb23431e12b Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Sat, 28 Dec 2024 13:12:07 +0000 Subject: [PATCH 25/32] Handle books with empty ISBN --- .../widgets/course_unit_sheet.dart | 74 ++++++++++--------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 006e4a37b..0fe6e01bf 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -272,40 +272,48 @@ class CourseUnitSheetView extends StatelessWidget { Widget _buildBooksRow(BuildContext context, List books) { return Wrap( alignment: WrapAlignment.spaceBetween, - children: [ - ...books.asMap().entries.map((book) { - return FutureBuilder( - builder: (context, snapshot) { - return Padding( - padding: const EdgeInsets.only(left: 15, right: 15, top: 10), - child: Column( - children: [ - SizedBox( - width: 135, - height: 140, - child: snapshot.data != null - ? Image(image: NetworkImage(snapshot.data!)) - : const Image( - image: AssetImage( - 'assets/images/book_placeholder.png', - ), - ), - ), - SizedBox( - width: 135, - child: Text( - book.value.title, - textAlign: TextAlign.center, - ), + children: books.map((book) => _buildBookTile(context, book)).toList(), + ); + } + + Widget _buildBookTile(BuildContext context, Book book) { + return Padding( + padding: const EdgeInsets.only(left: 15, right: 15, top: 10), + child: Column( + children: [ + SizedBox( + width: 135, + height: 140, + child: book.isbn.isNotEmpty + ? FutureBuilder( + future: BookThumbFetcher().fetchBookThumb(book.isbn), + builder: (context, snapshot) { + if (snapshot.hasData && snapshot.data != null) { + return Image(image: NetworkImage(snapshot.data!)); + } else { + return const Image( + image: AssetImage( + 'assets/images/book_placeholder.png', + ), + ); + } + }, + ) + : const Image( + image: AssetImage( + 'assets/images/book_placeholder.png', ), - ], - ), - ); - }, - future: BookThumbFetcher().fetchBookThumb(book.value.isbn), - ); - }), - ], + ), + ), + SizedBox( + width: 135, + child: Text( + book.title, + textAlign: TextAlign.center, + ), + ), + ], + ), ); } From a9f3d4eae041d196fc3062393a338797c008e9d5 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Sat, 28 Dec 2024 14:44:06 +0000 Subject: [PATCH 26/32] Added Eligibility for exams section to course unit --- .../parsers/parser_course_unit_info.dart | 3 +- .../lib/generated/intl/messages_en.dart | 446 +++++++---------- .../lib/generated/intl/messages_pt_PT.dart | 447 +++++++----------- packages/uni_app/lib/generated/l10n.dart | 31 +- packages/uni_app/lib/l10n/intl_en.arb | 2 + packages/uni_app/lib/l10n/intl_pt_PT.arb | 2 + .../model/entities/course_units/sheet.dart | 12 +- .../widgets/course_unit_sheet.dart | 91 ++-- 8 files changed, 411 insertions(+), 623 deletions(-) diff --git a/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart b/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart index 3d3337315..e315025fd 100644 --- a/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart +++ b/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart @@ -69,9 +69,10 @@ Future parseSheet(http.Response response) async { return Sheet( professors: professors, + regents: regents, content: json['conteudo'].toString(), evaluation: json['for_avaliacao'].toString(), - regents: regents, + frequency: json['cond_frequencia'].toString(), books: books, ); } diff --git a/packages/uni_app/lib/generated/intl/messages_en.dart b/packages/uni_app/lib/generated/intl/messages_en.dart index 24826a3e3..1dfe85713 100644 --- a/packages/uni_app/lib/generated/intl/messages_en.dart +++ b/packages/uni_app/lib/generated/intl/messages_en.dart @@ -21,285 +21,175 @@ class MessageLookup extends MessageLookupByLibrary { static m0(time) => "last refresh at ${time}"; - static m1(time) => - "${Intl.plural(time, zero: 'Refreshed ${time} minutes ago', one: 'Refreshed ${time} minute ago', other: 'Refreshed ${time} minutes ago')}"; + static m1(time) => "${Intl.plural(time, zero: 'Refreshed ${time} minutes ago', one: 'Refreshed ${time} minute ago', other: 'Refreshed ${time} minutes ago')}"; - static m2(title) => "${Intl.select(title, { - 'horario': 'Schedule', - 'exames': 'Exams', - 'area': 'Personal Area', - 'cadeiras': 'Course Units', - 'autocarros': 'Buses', - 'locais': 'Places', - 'restaurantes': 'Restaurants', - 'calendario': 'Calendar', - 'biblioteca': 'Library', - 'percurso_academico': 'Academic Path', - 'transportes': 'Transports', - 'faculdade': 'Faculty', - 'other': 'Other', - })}"; + static m2(title) => "${Intl.select(title, {'horario': 'Schedule', 'exames': 'Exams', 'area': 'Personal Area', 'cadeiras': 'Course Units', 'autocarros': 'Buses', 'locais': 'Places', 'restaurantes': 'Restaurants', 'calendario': 'Calendar', 'biblioteca': 'Library', 'percurso_academico': 'Academic Path', 'transportes': 'Transports', 'faculdade': 'Faculty', 'other': 'Other', })}"; final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "about": MessageLookupByLibrary.simpleMessage("About us"), - "academic_services": - MessageLookupByLibrary.simpleMessage("Academic services"), - "account_card_title": - MessageLookupByLibrary.simpleMessage("Checking account"), - "add": MessageLookupByLibrary.simpleMessage("Add"), - "add_quota": MessageLookupByLibrary.simpleMessage("Add quota"), - "add_widget": MessageLookupByLibrary.simpleMessage("Add widget"), - "agree_terms": MessageLookupByLibrary.simpleMessage( - "By entering you confirm that you agree with these Terms and Conditions"), - "all_widgets_added": MessageLookupByLibrary.simpleMessage( - "All available widgets have already been added to your personal area!"), - "at_least_one_college": - MessageLookupByLibrary.simpleMessage("Select at least one college"), - "available_amount": - MessageLookupByLibrary.simpleMessage("Available amount"), - "average": MessageLookupByLibrary.simpleMessage("Average: "), - "balance": MessageLookupByLibrary.simpleMessage("Balance:"), - "banner_info": MessageLookupByLibrary.simpleMessage( - "We do now collect anonymous usage statistics in order to improve your experience. You can change it in settings."), - "bibliography": MessageLookupByLibrary.simpleMessage("Bibliography"), - "bs_description": MessageLookupByLibrary.simpleMessage( - "Did you find any bugs in the application?\nDo you have any suggestions for the app?\nTell us so we can improve!"), - "bug_description": MessageLookupByLibrary.simpleMessage( - "Bug found, how to reproduce it, etc."), - "bus_error": - MessageLookupByLibrary.simpleMessage("Unable to get information"), - "bus_information": MessageLookupByLibrary.simpleMessage( - "Select the buses you want information about:"), - "buses_personalize": - MessageLookupByLibrary.simpleMessage("Personalize your buses here"), - "buses_text": MessageLookupByLibrary.simpleMessage( - "Favorite buses will be displayed in the favorites \'Bus\' widget. The remaining ones will only be displayed on the page."), - "cancel": MessageLookupByLibrary.simpleMessage("Cancel"), - "change": MessageLookupByLibrary.simpleMessage("Change"), - "change_prompt": MessageLookupByLibrary.simpleMessage( - "Do you want to change the password?"), - "check_internet": MessageLookupByLibrary.simpleMessage( - "Check your internet connection"), - "class_registration": - MessageLookupByLibrary.simpleMessage("Class Registration"), - "collect_usage_stats": - MessageLookupByLibrary.simpleMessage("Collect usage statistics"), - "college": MessageLookupByLibrary.simpleMessage("College: "), - "college_select": - MessageLookupByLibrary.simpleMessage("select your college(s)"), - "conclude": MessageLookupByLibrary.simpleMessage("Done"), - "configured_buses": - MessageLookupByLibrary.simpleMessage("Configured Buses"), - "confirm": MessageLookupByLibrary.simpleMessage("Confirm"), - "confirm_logout": MessageLookupByLibrary.simpleMessage( - "Do you really want to log out? Your local data will be deleted and you will have to log in again."), - "consent": MessageLookupByLibrary.simpleMessage( - "I consent to this information being reviewed by NIAEFEUP and may be deleted at my request."), - "contact": MessageLookupByLibrary.simpleMessage("Contact (optional)"), - "copy_center": MessageLookupByLibrary.simpleMessage("Copy center"), - "copy_center_building": MessageLookupByLibrary.simpleMessage( - "Floor -1 of building B | AEFEUP building"), - "course_class": MessageLookupByLibrary.simpleMessage("Classes"), - "course_info": MessageLookupByLibrary.simpleMessage("Info"), - "current_state": - MessageLookupByLibrary.simpleMessage("Current state: "), - "current_year": - MessageLookupByLibrary.simpleMessage("Current academic year: "), - "decrement": MessageLookupByLibrary.simpleMessage("Decrement 1,00€"), - "description": MessageLookupByLibrary.simpleMessage("Description"), - "desired_email": MessageLookupByLibrary.simpleMessage( - "Email where you want to be contacted"), - "dona_bia": MessageLookupByLibrary.simpleMessage( - "D. Beatriz\'s stationery store"), - "dona_bia_building": MessageLookupByLibrary.simpleMessage( - "Floor -1 of building B (B-142)"), - "download_error": - MessageLookupByLibrary.simpleMessage("Error downloading the file"), - "ects": MessageLookupByLibrary.simpleMessage("ECTS performed: "), - "edit_off": MessageLookupByLibrary.simpleMessage("Edit"), - "edit_on": MessageLookupByLibrary.simpleMessage("Finish editing"), - "empty_text": - MessageLookupByLibrary.simpleMessage("Please fill in this field"), - "evaluation": MessageLookupByLibrary.simpleMessage("Evaluation"), - "exams_filter": - MessageLookupByLibrary.simpleMessage("Exams Filter Settings"), - "exit_confirm": - MessageLookupByLibrary.simpleMessage("Do you really want to exit?"), - "expired_password": - MessageLookupByLibrary.simpleMessage("Your password has expired"), - "fail_to_authenticate": - MessageLookupByLibrary.simpleMessage("Failed to authenticate"), - "failed_login": MessageLookupByLibrary.simpleMessage("Login failed"), - "fee_date": - MessageLookupByLibrary.simpleMessage("Deadline for next fee:"), - "fee_notification": - MessageLookupByLibrary.simpleMessage("Fee deadline"), - "files": MessageLookupByLibrary.simpleMessage("Files"), - "first_year_registration": MessageLookupByLibrary.simpleMessage( - "Year of first registration: "), - "floor": MessageLookupByLibrary.simpleMessage("Floor"), - "floors": MessageLookupByLibrary.simpleMessage("Floors"), - "forgot_password": - MessageLookupByLibrary.simpleMessage("Forgot password?"), - "generate_reference": - MessageLookupByLibrary.simpleMessage("Generate reference"), - "geral_registration": - MessageLookupByLibrary.simpleMessage("General Registration"), - "improvement_registration": - MessageLookupByLibrary.simpleMessage("Enrollment for Improvement"), - "increment": MessageLookupByLibrary.simpleMessage("Increment 1,00€"), - "internet_status_exception": MessageLookupByLibrary.simpleMessage( - "Check your internet connection"), - "invalid_credentials": - MessageLookupByLibrary.simpleMessage("Invalid credentials"), - "keep_login": MessageLookupByLibrary.simpleMessage("Stay signed in"), - "language": MessageLookupByLibrary.simpleMessage("Language"), - "last_refresh_time": m0, - "last_timestamp": m1, - "library_occupation": - MessageLookupByLibrary.simpleMessage("Library Occupation"), - "load_error": MessageLookupByLibrary.simpleMessage( - "Error loading the information"), - "loading_terms": MessageLookupByLibrary.simpleMessage( - "Loading Terms and Conditions..."), - "login": MessageLookupByLibrary.simpleMessage("Login"), - "login_with_credentials": - MessageLookupByLibrary.simpleMessage("Login with credentials"), - "logout": MessageLookupByLibrary.simpleMessage("Log out"), - "menus": MessageLookupByLibrary.simpleMessage("Menus"), - "min_value_reference": - MessageLookupByLibrary.simpleMessage("Minimum value: 1,00 €"), - "multimedia_center": - MessageLookupByLibrary.simpleMessage("Multimedia center"), - "nav_title": m2, - "news": MessageLookupByLibrary.simpleMessage("News"), - "no": MessageLookupByLibrary.simpleMessage("No"), - "no_app": MessageLookupByLibrary.simpleMessage( - "No app found to open the file"), - "no_bus": MessageLookupByLibrary.simpleMessage("Don\'t miss any bus!"), - "no_bus_stops": - MessageLookupByLibrary.simpleMessage("No configured stops"), - "no_class": MessageLookupByLibrary.simpleMessage( - "There are no classes to display"), - "no_classes": - MessageLookupByLibrary.simpleMessage("No classes to present"), - "no_classes_on": - MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), - "no_classes_on_weekend": - MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), - "no_college": MessageLookupByLibrary.simpleMessage("no college"), - "no_course_units": MessageLookupByLibrary.simpleMessage( - "No course units in the selected period"), - "no_data": MessageLookupByLibrary.simpleMessage( - "There is no data to show at this time"), - "no_date": MessageLookupByLibrary.simpleMessage("No date"), - "no_events": MessageLookupByLibrary.simpleMessage("No events found"), - "no_exams": MessageLookupByLibrary.simpleMessage( - "You have no exams scheduled\n"), - "no_exams_label": MessageLookupByLibrary.simpleMessage( - "Looks like you are on vacation!"), - "no_favorite_restaurants": - MessageLookupByLibrary.simpleMessage("No favorite restaurants"), - "no_files_found": - MessageLookupByLibrary.simpleMessage("No files found"), - "no_info": MessageLookupByLibrary.simpleMessage( - "There is no information to display"), - "no_internet": MessageLookupByLibrary.simpleMessage( - "It looks like you\'re offline"), - "no_library_info": MessageLookupByLibrary.simpleMessage( - "No library occupation information available"), - "no_link": - MessageLookupByLibrary.simpleMessage("We couldn\'t open the link"), - "no_menu_info": MessageLookupByLibrary.simpleMessage( - "There is no information available about meals"), - "no_menus": MessageLookupByLibrary.simpleMessage( - "There are no meals available"), - "no_name_course": - MessageLookupByLibrary.simpleMessage("Unnamed course"), - "no_places_info": MessageLookupByLibrary.simpleMessage( - "There is no information available about places"), - "no_print_info": MessageLookupByLibrary.simpleMessage( - "No print balance information"), - "no_references": MessageLookupByLibrary.simpleMessage( - "There are no references to pay"), - "no_results": MessageLookupByLibrary.simpleMessage("No match"), - "no_selected_courses": MessageLookupByLibrary.simpleMessage( - "There are no course units to display"), - "no_selected_exams": MessageLookupByLibrary.simpleMessage( - "There are no exams to present"), - "no_trips": MessageLookupByLibrary.simpleMessage( - "No trips found at the moment"), - "notifications": MessageLookupByLibrary.simpleMessage("Notifications"), - "occurrence_type": - MessageLookupByLibrary.simpleMessage("Type of occurrence"), - "of_month": MessageLookupByLibrary.simpleMessage("of"), - "open_error": - MessageLookupByLibrary.simpleMessage("Error opening the file"), - "other_links": MessageLookupByLibrary.simpleMessage("Other links"), - "pass_change_request": MessageLookupByLibrary.simpleMessage( - "For security reasons, passwords must be changed periodically."), - "password": MessageLookupByLibrary.simpleMessage("password"), - "pendent_references": - MessageLookupByLibrary.simpleMessage("Pending references"), - "permission_denied": - MessageLookupByLibrary.simpleMessage("Permission denied"), - "personal_assistance": - MessageLookupByLibrary.simpleMessage("Face-to-face assistance"), - "press_again": - MessageLookupByLibrary.simpleMessage("Press again to exit"), - "print": MessageLookupByLibrary.simpleMessage("Print"), - "prints": MessageLookupByLibrary.simpleMessage("Prints"), - "problem_id": MessageLookupByLibrary.simpleMessage( - "Brief identification of the problem"), - "program": MessageLookupByLibrary.simpleMessage("Program"), - "reference_sigarra_help": MessageLookupByLibrary.simpleMessage( - "The generated reference data will appear in Sigarra, checking account.\nProfile > Checking Account"), - "reference_success": MessageLookupByLibrary.simpleMessage( - "Reference created successfully!"), - "remove": MessageLookupByLibrary.simpleMessage("Delete"), - "report_error": MessageLookupByLibrary.simpleMessage("Report error"), - "report_error_suggestion": - MessageLookupByLibrary.simpleMessage("Report error/suggestion"), - "restaurant_main_page": MessageLookupByLibrary.simpleMessage( - "Do you want to see your favorite restaurants in the main page?"), - "room": MessageLookupByLibrary.simpleMessage("Room"), - "school_calendar": - MessageLookupByLibrary.simpleMessage("School Calendar"), - "search": MessageLookupByLibrary.simpleMessage("Search"), - "semester": MessageLookupByLibrary.simpleMessage("Semester"), - "send": MessageLookupByLibrary.simpleMessage("Send"), - "sent_error": MessageLookupByLibrary.simpleMessage( - "An error occurred in sending"), - "settings": MessageLookupByLibrary.simpleMessage("Settings"), - "some_error": MessageLookupByLibrary.simpleMessage("Some error!"), - "stcp_stops": - MessageLookupByLibrary.simpleMessage("STCP - Upcoming Trips"), - "student_number": - MessageLookupByLibrary.simpleMessage("student number"), - "success": MessageLookupByLibrary.simpleMessage("Sent with success"), - "successful_open": - MessageLookupByLibrary.simpleMessage("File opened successfully"), - "tele_assistance": - MessageLookupByLibrary.simpleMessage("Telephone assistance"), - "tele_personal_assistance": MessageLookupByLibrary.simpleMessage( - "Face-to-face and telephone assistance"), - "telephone": MessageLookupByLibrary.simpleMessage("Telephone"), - "terms": MessageLookupByLibrary.simpleMessage("Terms and Conditions"), - "theme": MessageLookupByLibrary.simpleMessage("Theme"), - "title": MessageLookupByLibrary.simpleMessage("Title"), - "try_again": MessageLookupByLibrary.simpleMessage("Try again"), - "try_different_login": MessageLookupByLibrary.simpleMessage( - "Problems with login? Try a different login"), - "uc_info": MessageLookupByLibrary.simpleMessage("Open UC page"), - "unavailable": MessageLookupByLibrary.simpleMessage("Unavailable"), - "valid_email": - MessageLookupByLibrary.simpleMessage("Please enter a valid email"), - "widget_prompt": MessageLookupByLibrary.simpleMessage( - "Choose a widget to add to your personal area:"), - "wrong_credentials_exception": - MessageLookupByLibrary.simpleMessage("Invalid credentials"), - "year": MessageLookupByLibrary.simpleMessage("Year"), - "yes": MessageLookupByLibrary.simpleMessage("Yes") - }; + static _notInlinedMessages(_) => { + "about" : MessageLookupByLibrary.simpleMessage("About us"), + "academic_services" : MessageLookupByLibrary.simpleMessage("Academic services"), + "account_card_title" : MessageLookupByLibrary.simpleMessage("Checking account"), + "add" : MessageLookupByLibrary.simpleMessage("Add"), + "add_quota" : MessageLookupByLibrary.simpleMessage("Add quota"), + "add_widget" : MessageLookupByLibrary.simpleMessage("Add widget"), + "agree_terms" : MessageLookupByLibrary.simpleMessage("By entering you confirm that you agree with these Terms and Conditions"), + "all_widgets_added" : MessageLookupByLibrary.simpleMessage("All available widgets have already been added to your personal area!"), + "at_least_one_college" : MessageLookupByLibrary.simpleMessage("Select at least one college"), + "available_amount" : MessageLookupByLibrary.simpleMessage("Available amount"), + "average" : MessageLookupByLibrary.simpleMessage("Average: "), + "balance" : MessageLookupByLibrary.simpleMessage("Balance:"), + "banner_info" : MessageLookupByLibrary.simpleMessage("We do now collect anonymous usage statistics in order to improve your experience. You can change it in settings."), + "bibliography" : MessageLookupByLibrary.simpleMessage("Bibliography"), + "bs_description" : MessageLookupByLibrary.simpleMessage("Did you find any bugs in the application?\nDo you have any suggestions for the app?\nTell us so we can improve!"), + "bug_description" : MessageLookupByLibrary.simpleMessage("Bug found, how to reproduce it, etc."), + "bus_error" : MessageLookupByLibrary.simpleMessage("Unable to get information"), + "bus_information" : MessageLookupByLibrary.simpleMessage("Select the buses you want information about:"), + "buses_personalize" : MessageLookupByLibrary.simpleMessage("Personalize your buses here"), + "buses_text" : MessageLookupByLibrary.simpleMessage("Favorite buses will be displayed in the favorites \'Bus\' widget. The remaining ones will only be displayed on the page."), + "cancel" : MessageLookupByLibrary.simpleMessage("Cancel"), + "change" : MessageLookupByLibrary.simpleMessage("Change"), + "change_prompt" : MessageLookupByLibrary.simpleMessage("Do you want to change the password?"), + "check_internet" : MessageLookupByLibrary.simpleMessage("Check your internet connection"), + "class_registration" : MessageLookupByLibrary.simpleMessage("Class Registration"), + "collect_usage_stats" : MessageLookupByLibrary.simpleMessage("Collect usage statistics"), + "college" : MessageLookupByLibrary.simpleMessage("College: "), + "college_select" : MessageLookupByLibrary.simpleMessage("select your college(s)"), + "conclude" : MessageLookupByLibrary.simpleMessage("Done"), + "configured_buses" : MessageLookupByLibrary.simpleMessage("Configured Buses"), + "confirm" : MessageLookupByLibrary.simpleMessage("Confirm"), + "confirm_logout" : MessageLookupByLibrary.simpleMessage("Do you really want to log out? Your local data will be deleted and you will have to log in again."), + "consent" : MessageLookupByLibrary.simpleMessage("I consent to this information being reviewed by NIAEFEUP and may be deleted at my request."), + "contact" : MessageLookupByLibrary.simpleMessage("Contact (optional)"), + "copy_center" : MessageLookupByLibrary.simpleMessage("Copy center"), + "copy_center_building" : MessageLookupByLibrary.simpleMessage("Floor -1 of building B | AEFEUP building"), + "course_class" : MessageLookupByLibrary.simpleMessage("Classes"), + "course_info" : MessageLookupByLibrary.simpleMessage("Info"), + "current_state" : MessageLookupByLibrary.simpleMessage("Current state: "), + "current_year" : MessageLookupByLibrary.simpleMessage("Current academic year: "), + "decrement" : MessageLookupByLibrary.simpleMessage("Decrement 1,00€"), + "description" : MessageLookupByLibrary.simpleMessage("Description"), + "desired_email" : MessageLookupByLibrary.simpleMessage("Email where you want to be contacted"), + "dona_bia" : MessageLookupByLibrary.simpleMessage("D. Beatriz\'s stationery store"), + "dona_bia_building" : MessageLookupByLibrary.simpleMessage("Floor -1 of building B (B-142)"), + "download_error" : MessageLookupByLibrary.simpleMessage("Error downloading the file"), + "ects" : MessageLookupByLibrary.simpleMessage("ECTS performed: "), + "edit_off" : MessageLookupByLibrary.simpleMessage("Edit"), + "edit_on" : MessageLookupByLibrary.simpleMessage("Finish editing"), + "empty_text" : MessageLookupByLibrary.simpleMessage("Please fill in this field"), + "evaluation" : MessageLookupByLibrary.simpleMessage("Evaluation"), + "exams_filter" : MessageLookupByLibrary.simpleMessage("Exams Filter Settings"), + "exit_confirm" : MessageLookupByLibrary.simpleMessage("Do you really want to exit?"), + "expired_password" : MessageLookupByLibrary.simpleMessage("Your password has expired"), + "fail_to_authenticate" : MessageLookupByLibrary.simpleMessage("Failed to authenticate"), + "failed_login" : MessageLookupByLibrary.simpleMessage("Login failed"), + "fee_date" : MessageLookupByLibrary.simpleMessage("Deadline for next fee:"), + "fee_notification" : MessageLookupByLibrary.simpleMessage("Fee deadline"), + "files" : MessageLookupByLibrary.simpleMessage("Files"), + "first_year_registration" : MessageLookupByLibrary.simpleMessage("Year of first registration: "), + "floor" : MessageLookupByLibrary.simpleMessage("Floor"), + "floors" : MessageLookupByLibrary.simpleMessage("Floors"), + "forgot_password" : MessageLookupByLibrary.simpleMessage("Forgot password?"), + "frequency" : MessageLookupByLibrary.simpleMessage("Eligibility for exams"), + "generate_reference" : MessageLookupByLibrary.simpleMessage("Generate reference"), + "geral_registration" : MessageLookupByLibrary.simpleMessage("General Registration"), + "improvement_registration" : MessageLookupByLibrary.simpleMessage("Enrollment for Improvement"), + "increment" : MessageLookupByLibrary.simpleMessage("Increment 1,00€"), + "internet_status_exception" : MessageLookupByLibrary.simpleMessage("Check your internet connection"), + "invalid_credentials" : MessageLookupByLibrary.simpleMessage("Invalid credentials"), + "keep_login" : MessageLookupByLibrary.simpleMessage("Stay signed in"), + "language" : MessageLookupByLibrary.simpleMessage("Language"), + "last_refresh_time" : m0, + "last_timestamp" : m1, + "library_occupation" : MessageLookupByLibrary.simpleMessage("Library Occupation"), + "load_error" : MessageLookupByLibrary.simpleMessage("Error loading the information"), + "loading_terms" : MessageLookupByLibrary.simpleMessage("Loading Terms and Conditions..."), + "login" : MessageLookupByLibrary.simpleMessage("Login"), + "login_with_credentials" : MessageLookupByLibrary.simpleMessage("Login with credentials"), + "logout" : MessageLookupByLibrary.simpleMessage("Log out"), + "menus" : MessageLookupByLibrary.simpleMessage("Menus"), + "min_value_reference" : MessageLookupByLibrary.simpleMessage("Minimum value: 1,00 €"), + "multimedia_center" : MessageLookupByLibrary.simpleMessage("Multimedia center"), + "nav_title" : m2, + "news" : MessageLookupByLibrary.simpleMessage("News"), + "no" : MessageLookupByLibrary.simpleMessage("No"), + "no_app" : MessageLookupByLibrary.simpleMessage("No app found to open the file"), + "no_bus" : MessageLookupByLibrary.simpleMessage("Don\'t miss any bus!"), + "no_bus_stops" : MessageLookupByLibrary.simpleMessage("No configured stops"), + "no_class" : MessageLookupByLibrary.simpleMessage("There are no classes to display"), + "no_classes" : MessageLookupByLibrary.simpleMessage("No classes to present"), + "no_classes_on" : MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), + "no_classes_on_weekend" : MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), + "no_college" : MessageLookupByLibrary.simpleMessage("no college"), + "no_course_units" : MessageLookupByLibrary.simpleMessage("No course units in the selected period"), + "no_data" : MessageLookupByLibrary.simpleMessage("There is no data to show at this time"), + "no_date" : MessageLookupByLibrary.simpleMessage("No date"), + "no_events" : MessageLookupByLibrary.simpleMessage("No events found"), + "no_exams" : MessageLookupByLibrary.simpleMessage("You have no exams scheduled\n"), + "no_exams_label" : MessageLookupByLibrary.simpleMessage("Looks like you are on vacation!"), + "no_favorite_restaurants" : MessageLookupByLibrary.simpleMessage("No favorite restaurants"), + "no_files_found" : MessageLookupByLibrary.simpleMessage("No files found"), + "no_info" : MessageLookupByLibrary.simpleMessage("There is no information to display"), + "no_internet" : MessageLookupByLibrary.simpleMessage("It looks like you\'re offline"), + "no_library_info" : MessageLookupByLibrary.simpleMessage("No library occupation information available"), + "no_link" : MessageLookupByLibrary.simpleMessage("We couldn\'t open the link"), + "no_menu_info" : MessageLookupByLibrary.simpleMessage("There is no information available about meals"), + "no_menus" : MessageLookupByLibrary.simpleMessage("There are no meals available"), + "no_name_course" : MessageLookupByLibrary.simpleMessage("Unnamed course"), + "no_places_info" : MessageLookupByLibrary.simpleMessage("There is no information available about places"), + "no_print_info" : MessageLookupByLibrary.simpleMessage("No print balance information"), + "no_references" : MessageLookupByLibrary.simpleMessage("There are no references to pay"), + "no_results" : MessageLookupByLibrary.simpleMessage("No match"), + "no_selected_courses" : MessageLookupByLibrary.simpleMessage("There are no course units to display"), + "no_selected_exams" : MessageLookupByLibrary.simpleMessage("There are no exams to present"), + "no_trips" : MessageLookupByLibrary.simpleMessage("No trips found at the moment"), + "notifications" : MessageLookupByLibrary.simpleMessage("Notifications"), + "occurrence_type" : MessageLookupByLibrary.simpleMessage("Type of occurrence"), + "of_month" : MessageLookupByLibrary.simpleMessage("of"), + "open_error" : MessageLookupByLibrary.simpleMessage("Error opening the file"), + "other_links" : MessageLookupByLibrary.simpleMessage("Other links"), + "pass_change_request" : MessageLookupByLibrary.simpleMessage("For security reasons, passwords must be changed periodically."), + "password" : MessageLookupByLibrary.simpleMessage("password"), + "pendent_references" : MessageLookupByLibrary.simpleMessage("Pending references"), + "permission_denied" : MessageLookupByLibrary.simpleMessage("Permission denied"), + "personal_assistance" : MessageLookupByLibrary.simpleMessage("Face-to-face assistance"), + "press_again" : MessageLookupByLibrary.simpleMessage("Press again to exit"), + "print" : MessageLookupByLibrary.simpleMessage("Print"), + "prints" : MessageLookupByLibrary.simpleMessage("Prints"), + "problem_id" : MessageLookupByLibrary.simpleMessage("Brief identification of the problem"), + "program" : MessageLookupByLibrary.simpleMessage("Program"), + "reference_sigarra_help" : MessageLookupByLibrary.simpleMessage("The generated reference data will appear in Sigarra, checking account.\nProfile > Checking Account"), + "reference_success" : MessageLookupByLibrary.simpleMessage("Reference created successfully!"), + "remove" : MessageLookupByLibrary.simpleMessage("Delete"), + "report_error" : MessageLookupByLibrary.simpleMessage("Report error"), + "report_error_suggestion" : MessageLookupByLibrary.simpleMessage("Report error/suggestion"), + "restaurant_main_page" : MessageLookupByLibrary.simpleMessage("Do you want to see your favorite restaurants in the main page?"), + "room" : MessageLookupByLibrary.simpleMessage("Room"), + "school_calendar" : MessageLookupByLibrary.simpleMessage("School Calendar"), + "search" : MessageLookupByLibrary.simpleMessage("Search"), + "semester" : MessageLookupByLibrary.simpleMessage("Semester"), + "send" : MessageLookupByLibrary.simpleMessage("Send"), + "sent_error" : MessageLookupByLibrary.simpleMessage("An error occurred in sending"), + "settings" : MessageLookupByLibrary.simpleMessage("Settings"), + "some_error" : MessageLookupByLibrary.simpleMessage("Some error!"), + "stcp_stops" : MessageLookupByLibrary.simpleMessage("STCP - Upcoming Trips"), + "student_number" : MessageLookupByLibrary.simpleMessage("student number"), + "success" : MessageLookupByLibrary.simpleMessage("Sent with success"), + "successful_open" : MessageLookupByLibrary.simpleMessage("File opened successfully"), + "tele_assistance" : MessageLookupByLibrary.simpleMessage("Telephone assistance"), + "tele_personal_assistance" : MessageLookupByLibrary.simpleMessage("Face-to-face and telephone assistance"), + "telephone" : MessageLookupByLibrary.simpleMessage("Telephone"), + "terms" : MessageLookupByLibrary.simpleMessage("Terms and Conditions"), + "theme" : MessageLookupByLibrary.simpleMessage("Theme"), + "title" : MessageLookupByLibrary.simpleMessage("Title"), + "try_again" : MessageLookupByLibrary.simpleMessage("Try again"), + "try_different_login" : MessageLookupByLibrary.simpleMessage("Problems with login? Try a different login"), + "uc_info" : MessageLookupByLibrary.simpleMessage("Open UC page"), + "unavailable" : MessageLookupByLibrary.simpleMessage("Unavailable"), + "valid_email" : MessageLookupByLibrary.simpleMessage("Please enter a valid email"), + "widget_prompt" : MessageLookupByLibrary.simpleMessage("Choose a widget to add to your personal area:"), + "wrong_credentials_exception" : MessageLookupByLibrary.simpleMessage("Invalid credentials"), + "year" : MessageLookupByLibrary.simpleMessage("Year"), + "yes" : MessageLookupByLibrary.simpleMessage("Yes") + }; } diff --git a/packages/uni_app/lib/generated/intl/messages_pt_PT.dart b/packages/uni_app/lib/generated/intl/messages_pt_PT.dart index 502e9f9ec..617ee0727 100644 --- a/packages/uni_app/lib/generated/intl/messages_pt_PT.dart +++ b/packages/uni_app/lib/generated/intl/messages_pt_PT.dart @@ -21,286 +21,175 @@ class MessageLookup extends MessageLookupByLibrary { static m0(time) => "última atualização às ${time}"; - static m1(time) => - "${Intl.plural(time, zero: 'Atualizado há ${time} minutos', one: 'Atualizado há ${time} minuto', other: 'Atualizado há ${time} minutos')}"; + static m1(time) => "${Intl.plural(time, zero: 'Atualizado há ${time} minutos', one: 'Atualizado há ${time} minuto', other: 'Atualizado há ${time} minutos')}"; - static m2(title) => "${Intl.select(title, { - 'horario': 'Horário', - 'exames': 'Exames', - 'area': 'Área Pessoal', - 'cadeiras': 'Cadeiras', - 'autocarros': 'Autocarros', - 'locais': 'Locais', - 'restaurantes': 'Restaurantes', - 'calendario': 'Calendário', - 'biblioteca': 'Biblioteca', - 'percurso_academico': 'Percurso Académico', - 'transportes': 'Transportes', - 'faculdade': 'Faculdade', - 'other': 'Outros', - })}"; + static m2(title) => "${Intl.select(title, {'horario': 'Horário', 'exames': 'Exames', 'area': 'Área Pessoal', 'cadeiras': 'Cadeiras', 'autocarros': 'Autocarros', 'locais': 'Locais', 'restaurantes': 'Restaurantes', 'calendario': 'Calendário', 'biblioteca': 'Biblioteca', 'percurso_academico': 'Percurso Académico', 'transportes': 'Transportes', 'faculdade': 'Faculdade', 'other': 'Outros', })}"; final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "about": MessageLookupByLibrary.simpleMessage("Sobre nós"), - "academic_services": - MessageLookupByLibrary.simpleMessage("Serviços académicos"), - "account_card_title": - MessageLookupByLibrary.simpleMessage("Conta Corrente"), - "add": MessageLookupByLibrary.simpleMessage("Adicionar"), - "add_quota": MessageLookupByLibrary.simpleMessage("Adicionar quota"), - "add_widget": MessageLookupByLibrary.simpleMessage("Adicionar widget"), - "agree_terms": MessageLookupByLibrary.simpleMessage( - "Ao entrares confirmas que concordas com estes Termos e Condições"), - "all_widgets_added": MessageLookupByLibrary.simpleMessage( - "Todos os widgets disponíveis já foram adicionados à tua área pessoal!"), - "at_least_one_college": MessageLookupByLibrary.simpleMessage( - "Seleciona pelo menos uma faculdade"), - "available_amount": - MessageLookupByLibrary.simpleMessage("Valor disponível"), - "average": MessageLookupByLibrary.simpleMessage("Média: "), - "balance": MessageLookupByLibrary.simpleMessage("Saldo:"), - "banner_info": MessageLookupByLibrary.simpleMessage( - "Agora recolhemos estatísticas de uso anónimas para melhorar a tua experiência. Podes alterá-lo nas definições."), - "bibliography": MessageLookupByLibrary.simpleMessage("Bibliografia"), - "bs_description": MessageLookupByLibrary.simpleMessage( - "Encontraste algum bug na aplicação?\nTens alguma sugestão para a app?\nConta-nos para que possamos melhorar!"), - "bug_description": MessageLookupByLibrary.simpleMessage( - "Bug encontrado, como o reproduzir, etc"), - "bus_error": MessageLookupByLibrary.simpleMessage( - "Não foi possível obter informação"), - "bus_information": MessageLookupByLibrary.simpleMessage( - "Seleciona os autocarros dos quais queres informação:"), - "buses_personalize": MessageLookupByLibrary.simpleMessage( - "Configura aqui os teus autocarros"), - "buses_text": MessageLookupByLibrary.simpleMessage( - "Os autocarros favoritos serão apresentados no widget \'Autocarros\' dos favoritos. Os restantes serão apresentados apenas na página."), - "cancel": MessageLookupByLibrary.simpleMessage("Cancelar"), - "change": MessageLookupByLibrary.simpleMessage("Alterar"), - "change_prompt": MessageLookupByLibrary.simpleMessage( - "Deseja alterar a palavra-passe?"), - "check_internet": MessageLookupByLibrary.simpleMessage( - "Verifica a tua ligação à internet"), - "class_registration": - MessageLookupByLibrary.simpleMessage("Inscrição de Turmas"), - "collect_usage_stats": MessageLookupByLibrary.simpleMessage( - "Partilhar estatísticas de uso"), - "college": MessageLookupByLibrary.simpleMessage("Faculdade: "), - "college_select": MessageLookupByLibrary.simpleMessage( - "seleciona a(s) tua(s) faculdade(s)"), - "conclude": MessageLookupByLibrary.simpleMessage("Concluído"), - "configured_buses": - MessageLookupByLibrary.simpleMessage("Autocarros Configurados"), - "confirm": MessageLookupByLibrary.simpleMessage("Confirmar"), - "confirm_logout": MessageLookupByLibrary.simpleMessage( - "Tens a certeza de que queres terminar sessão? Os teus dados locais serão apagados e terás de iniciar sessão novamente."), - "consent": MessageLookupByLibrary.simpleMessage( - "Consinto que esta informação seja revista pelo NIAEFEUP, podendo ser eliminada a meu pedido."), - "contact": MessageLookupByLibrary.simpleMessage("Contacto (opcional)"), - "copy_center": MessageLookupByLibrary.simpleMessage("Centro de cópias"), - "copy_center_building": MessageLookupByLibrary.simpleMessage( - "Piso -1 do edifício B | Edifício da AEFEUP"), - "course_class": MessageLookupByLibrary.simpleMessage("Turmas"), - "course_info": MessageLookupByLibrary.simpleMessage("Ficha"), - "current_state": MessageLookupByLibrary.simpleMessage("Estado atual: "), - "current_year": - MessageLookupByLibrary.simpleMessage("Ano curricular atual: "), - "decrement": MessageLookupByLibrary.simpleMessage("Decrementar 1,00€"), - "description": MessageLookupByLibrary.simpleMessage("Descrição"), - "desired_email": MessageLookupByLibrary.simpleMessage( - "Email em que desejas ser contactado"), - "dona_bia": - MessageLookupByLibrary.simpleMessage("Papelaria D. Beatriz"), - "dona_bia_building": MessageLookupByLibrary.simpleMessage( - "Piso -1 do edifício B (B-142)"), - "download_error": MessageLookupByLibrary.simpleMessage( - "Erro ao descarregar o ficheiro"), - "ects": MessageLookupByLibrary.simpleMessage("ECTS realizados: "), - "edit_off": MessageLookupByLibrary.simpleMessage("Editar"), - "edit_on": MessageLookupByLibrary.simpleMessage("Concluir edição"), - "empty_text": MessageLookupByLibrary.simpleMessage( - "Por favor preenche este campo"), - "evaluation": MessageLookupByLibrary.simpleMessage("Avaliação"), - "exams_filter": - MessageLookupByLibrary.simpleMessage("Definições Filtro de Exames"), - "exit_confirm": MessageLookupByLibrary.simpleMessage( - "Tem a certeza de que pretende sair?"), - "expired_password": - MessageLookupByLibrary.simpleMessage("A tua palavra-passe expirou"), - "fail_to_authenticate": - MessageLookupByLibrary.simpleMessage("Falha ao autenticar"), - "failed_login": MessageLookupByLibrary.simpleMessage("O login falhou"), - "fee_date": MessageLookupByLibrary.simpleMessage( - "Data limite próxima prestação:"), - "fee_notification": - MessageLookupByLibrary.simpleMessage("Data limite de propina"), - "files": MessageLookupByLibrary.simpleMessage("Ficheiros"), - "first_year_registration": - MessageLookupByLibrary.simpleMessage("Ano da primeira inscrição: "), - "floor": MessageLookupByLibrary.simpleMessage("Piso"), - "floors": MessageLookupByLibrary.simpleMessage("Pisos"), - "forgot_password": - MessageLookupByLibrary.simpleMessage("Esqueceu a palavra-passe?"), - "generate_reference": - MessageLookupByLibrary.simpleMessage("Gerar referência"), - "geral_registration": - MessageLookupByLibrary.simpleMessage("Inscrição Geral"), - "improvement_registration": - MessageLookupByLibrary.simpleMessage("Inscrição para Melhoria"), - "increment": MessageLookupByLibrary.simpleMessage("Incrementar 1,00€"), - "internet_status_exception": MessageLookupByLibrary.simpleMessage( - "Verifique sua conexão com a internet"), - "invalid_credentials": - MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), - "keep_login": MessageLookupByLibrary.simpleMessage("Manter sessão"), - "language": MessageLookupByLibrary.simpleMessage("Idioma"), - "last_refresh_time": m0, - "last_timestamp": m1, - "library_occupation": - MessageLookupByLibrary.simpleMessage("Ocupação da Biblioteca"), - "load_error": MessageLookupByLibrary.simpleMessage( - "Erro ao carregar a informação"), - "loading_terms": MessageLookupByLibrary.simpleMessage( - "Carregando os Termos e Condições..."), - "login": MessageLookupByLibrary.simpleMessage("Entrar"), - "login_with_credentials": MessageLookupByLibrary.simpleMessage( - "Iniciar sessão com credenciais"), - "logout": MessageLookupByLibrary.simpleMessage("Terminar sessão"), - "menus": MessageLookupByLibrary.simpleMessage("Ementas"), - "min_value_reference": - MessageLookupByLibrary.simpleMessage("Valor mínimo: 1,00 €"), - "multimedia_center": - MessageLookupByLibrary.simpleMessage("Centro de multimédia"), - "nav_title": m2, - "news": MessageLookupByLibrary.simpleMessage("Notícias"), - "no": MessageLookupByLibrary.simpleMessage("Não"), - "no_app": MessageLookupByLibrary.simpleMessage( - "Nenhuma aplicação encontrada para abrir o ficheiro"), - "no_bus": MessageLookupByLibrary.simpleMessage( - "Não percas nenhum autocarro!"), - "no_bus_stops": MessageLookupByLibrary.simpleMessage( - "Não existe nenhuma paragem configurada"), - "no_class": MessageLookupByLibrary.simpleMessage( - "Não existem turmas para apresentar"), - "no_classes": MessageLookupByLibrary.simpleMessage( - "Não existem aulas para apresentar"), - "no_classes_on": - MessageLookupByLibrary.simpleMessage("Não possui aulas à"), - "no_classes_on_weekend": - MessageLookupByLibrary.simpleMessage("Não possui aulas ao"), - "no_college": MessageLookupByLibrary.simpleMessage("sem faculdade"), - "no_course_units": MessageLookupByLibrary.simpleMessage( - "Sem cadeiras no período selecionado"), - "no_data": MessageLookupByLibrary.simpleMessage( - "Não há dados a mostrar neste momento"), - "no_date": MessageLookupByLibrary.simpleMessage("Sem data"), - "no_events": - MessageLookupByLibrary.simpleMessage("Nenhum evento encontrado"), - "no_exams": - MessageLookupByLibrary.simpleMessage("Não possui exames marcados"), - "no_exams_label": - MessageLookupByLibrary.simpleMessage("Parece que estás de férias!"), - "no_favorite_restaurants": - MessageLookupByLibrary.simpleMessage("Sem restaurantes favoritos"), - "no_files_found": - MessageLookupByLibrary.simpleMessage("Nenhum ficheiro encontrado"), - "no_info": MessageLookupByLibrary.simpleMessage( - "Não existem informações para apresentar"), - "no_internet": - MessageLookupByLibrary.simpleMessage("Parece que estás offline"), - "no_library_info": - MessageLookupByLibrary.simpleMessage("Sem informação de ocupação"), - "no_link": MessageLookupByLibrary.simpleMessage( - "Não conseguimos abrir o link"), - "no_menu_info": MessageLookupByLibrary.simpleMessage( - "Não há informação disponível sobre refeições"), - "no_menus": MessageLookupByLibrary.simpleMessage( - "Não há refeições disponíveis"), - "no_name_course": - MessageLookupByLibrary.simpleMessage("Curso sem nome"), - "no_places_info": MessageLookupByLibrary.simpleMessage( - "Não há informação disponível sobre locais"), - "no_print_info": - MessageLookupByLibrary.simpleMessage("Sem informação de saldo"), - "no_references": MessageLookupByLibrary.simpleMessage( - "Não existem referências a pagar"), - "no_results": MessageLookupByLibrary.simpleMessage("Sem resultados"), - "no_selected_courses": MessageLookupByLibrary.simpleMessage( - "Não existem cadeiras para apresentar"), - "no_selected_exams": MessageLookupByLibrary.simpleMessage( - "Não existem exames para apresentar"), - "no_trips": MessageLookupByLibrary.simpleMessage( - "Não há viagens planeadas de momento"), - "notifications": MessageLookupByLibrary.simpleMessage("Notificações"), - "occurrence_type": - MessageLookupByLibrary.simpleMessage("Tipo de ocorrência"), - "of_month": MessageLookupByLibrary.simpleMessage("de"), - "open_error": - MessageLookupByLibrary.simpleMessage("Erro ao abrir o ficheiro"), - "other_links": MessageLookupByLibrary.simpleMessage("Outros links"), - "pass_change_request": MessageLookupByLibrary.simpleMessage( - "Por razões de segurança, as palavras-passe têm de ser alteradas periodicamente."), - "password": MessageLookupByLibrary.simpleMessage("palavra-passe"), - "pendent_references": - MessageLookupByLibrary.simpleMessage("Referências pendentes"), - "permission_denied": - MessageLookupByLibrary.simpleMessage("Sem permissão"), - "personal_assistance": - MessageLookupByLibrary.simpleMessage("Atendimento presencial"), - "press_again": MessageLookupByLibrary.simpleMessage( - "Pressione novamente para sair"), - "print": MessageLookupByLibrary.simpleMessage("Impressão"), - "prints": MessageLookupByLibrary.simpleMessage("Impressões"), - "problem_id": MessageLookupByLibrary.simpleMessage( - "Breve identificação do problema"), - "program": MessageLookupByLibrary.simpleMessage("Programa"), - "reference_sigarra_help": MessageLookupByLibrary.simpleMessage( - "Os dados da referência gerada aparecerão no Sigarra, conta corrente. Perfil > Conta Corrente"), - "reference_success": MessageLookupByLibrary.simpleMessage( - "Referência criada com sucesso!"), - "remove": MessageLookupByLibrary.simpleMessage("Remover"), - "report_error": MessageLookupByLibrary.simpleMessage("Reportar erro"), - "report_error_suggestion": - MessageLookupByLibrary.simpleMessage("Reportar erro/sugestão"), - "restaurant_main_page": MessageLookupByLibrary.simpleMessage( - "Queres ver os teus restaurantes favoritos na página principal?"), - "room": MessageLookupByLibrary.simpleMessage("Sala"), - "school_calendar": - MessageLookupByLibrary.simpleMessage("Calendário Escolar"), - "search": MessageLookupByLibrary.simpleMessage("Pesquisar"), - "semester": MessageLookupByLibrary.simpleMessage("Semestre"), - "send": MessageLookupByLibrary.simpleMessage("Enviar"), - "sent_error": - MessageLookupByLibrary.simpleMessage("Ocorreu um erro no envio"), - "settings": MessageLookupByLibrary.simpleMessage("Definições"), - "some_error": MessageLookupByLibrary.simpleMessage("Algum erro!"), - "stcp_stops": - MessageLookupByLibrary.simpleMessage("STCP - Próximas Viagens"), - "student_number": - MessageLookupByLibrary.simpleMessage("número de estudante"), - "success": MessageLookupByLibrary.simpleMessage("Enviado com sucesso"), - "successful_open": - MessageLookupByLibrary.simpleMessage("Ficheiro aberto com sucesso"), - "tele_assistance": - MessageLookupByLibrary.simpleMessage("Atendimento telefónico"), - "tele_personal_assistance": MessageLookupByLibrary.simpleMessage( - "Atendimento presencial e telefónico"), - "telephone": MessageLookupByLibrary.simpleMessage("Telefone"), - "terms": MessageLookupByLibrary.simpleMessage("Termos e Condições"), - "theme": MessageLookupByLibrary.simpleMessage("Tema"), - "title": MessageLookupByLibrary.simpleMessage("Título"), - "try_again": MessageLookupByLibrary.simpleMessage("Tentar de novo"), - "try_different_login": MessageLookupByLibrary.simpleMessage( - "Problemas a iniciar sessão? Experimenta o login alternativo"), - "uc_info": MessageLookupByLibrary.simpleMessage("Abrir página da UC"), - "unavailable": MessageLookupByLibrary.simpleMessage("Indisponível"), - "valid_email": MessageLookupByLibrary.simpleMessage( - "Por favor insere um email válido"), - "widget_prompt": MessageLookupByLibrary.simpleMessage( - "Escolhe um widget para adicionares à tua área pessoal:"), - "wrong_credentials_exception": - MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), - "year": MessageLookupByLibrary.simpleMessage("Ano"), - "yes": MessageLookupByLibrary.simpleMessage("Sim") - }; + static _notInlinedMessages(_) => { + "about" : MessageLookupByLibrary.simpleMessage("Sobre nós"), + "academic_services" : MessageLookupByLibrary.simpleMessage("Serviços académicos"), + "account_card_title" : MessageLookupByLibrary.simpleMessage("Conta Corrente"), + "add" : MessageLookupByLibrary.simpleMessage("Adicionar"), + "add_quota" : MessageLookupByLibrary.simpleMessage("Adicionar quota"), + "add_widget" : MessageLookupByLibrary.simpleMessage("Adicionar widget"), + "agree_terms" : MessageLookupByLibrary.simpleMessage("Ao entrares confirmas que concordas com estes Termos e Condições"), + "all_widgets_added" : MessageLookupByLibrary.simpleMessage("Todos os widgets disponíveis já foram adicionados à tua área pessoal!"), + "at_least_one_college" : MessageLookupByLibrary.simpleMessage("Seleciona pelo menos uma faculdade"), + "available_amount" : MessageLookupByLibrary.simpleMessage("Valor disponível"), + "average" : MessageLookupByLibrary.simpleMessage("Média: "), + "balance" : MessageLookupByLibrary.simpleMessage("Saldo:"), + "banner_info" : MessageLookupByLibrary.simpleMessage("Agora recolhemos estatísticas de uso anónimas para melhorar a tua experiência. Podes alterá-lo nas definições."), + "bibliography" : MessageLookupByLibrary.simpleMessage("Bibliografia"), + "bs_description" : MessageLookupByLibrary.simpleMessage("Encontraste algum bug na aplicação?\nTens alguma sugestão para a app?\nConta-nos para que possamos melhorar!"), + "bug_description" : MessageLookupByLibrary.simpleMessage("Bug encontrado, como o reproduzir, etc"), + "bus_error" : MessageLookupByLibrary.simpleMessage("Não foi possível obter informação"), + "bus_information" : MessageLookupByLibrary.simpleMessage("Seleciona os autocarros dos quais queres informação:"), + "buses_personalize" : MessageLookupByLibrary.simpleMessage("Configura aqui os teus autocarros"), + "buses_text" : MessageLookupByLibrary.simpleMessage("Os autocarros favoritos serão apresentados no widget \'Autocarros\' dos favoritos. Os restantes serão apresentados apenas na página."), + "cancel" : MessageLookupByLibrary.simpleMessage("Cancelar"), + "change" : MessageLookupByLibrary.simpleMessage("Alterar"), + "change_prompt" : MessageLookupByLibrary.simpleMessage("Deseja alterar a palavra-passe?"), + "check_internet" : MessageLookupByLibrary.simpleMessage("Verifica a tua ligação à internet"), + "class_registration" : MessageLookupByLibrary.simpleMessage("Inscrição de Turmas"), + "collect_usage_stats" : MessageLookupByLibrary.simpleMessage("Partilhar estatísticas de uso"), + "college" : MessageLookupByLibrary.simpleMessage("Faculdade: "), + "college_select" : MessageLookupByLibrary.simpleMessage("seleciona a(s) tua(s) faculdade(s)"), + "conclude" : MessageLookupByLibrary.simpleMessage("Concluído"), + "configured_buses" : MessageLookupByLibrary.simpleMessage("Autocarros Configurados"), + "confirm" : MessageLookupByLibrary.simpleMessage("Confirmar"), + "confirm_logout" : MessageLookupByLibrary.simpleMessage("Tens a certeza de que queres terminar sessão? Os teus dados locais serão apagados e terás de iniciar sessão novamente."), + "consent" : MessageLookupByLibrary.simpleMessage("Consinto que esta informação seja revista pelo NIAEFEUP, podendo ser eliminada a meu pedido."), + "contact" : MessageLookupByLibrary.simpleMessage("Contacto (opcional)"), + "copy_center" : MessageLookupByLibrary.simpleMessage("Centro de cópias"), + "copy_center_building" : MessageLookupByLibrary.simpleMessage("Piso -1 do edifício B | Edifício da AEFEUP"), + "course_class" : MessageLookupByLibrary.simpleMessage("Turmas"), + "course_info" : MessageLookupByLibrary.simpleMessage("Ficha"), + "current_state" : MessageLookupByLibrary.simpleMessage("Estado atual: "), + "current_year" : MessageLookupByLibrary.simpleMessage("Ano curricular atual: "), + "decrement" : MessageLookupByLibrary.simpleMessage("Decrementar 1,00€"), + "description" : MessageLookupByLibrary.simpleMessage("Descrição"), + "desired_email" : MessageLookupByLibrary.simpleMessage("Email em que desejas ser contactado"), + "dona_bia" : MessageLookupByLibrary.simpleMessage("Papelaria D. Beatriz"), + "dona_bia_building" : MessageLookupByLibrary.simpleMessage("Piso -1 do edifício B (B-142)"), + "download_error" : MessageLookupByLibrary.simpleMessage("Erro ao descarregar o ficheiro"), + "ects" : MessageLookupByLibrary.simpleMessage("ECTS realizados: "), + "edit_off" : MessageLookupByLibrary.simpleMessage("Editar"), + "edit_on" : MessageLookupByLibrary.simpleMessage("Concluir edição"), + "empty_text" : MessageLookupByLibrary.simpleMessage("Por favor preenche este campo"), + "evaluation" : MessageLookupByLibrary.simpleMessage("Avaliação"), + "exams_filter" : MessageLookupByLibrary.simpleMessage("Definições Filtro de Exames"), + "exit_confirm" : MessageLookupByLibrary.simpleMessage("Tem a certeza de que pretende sair?"), + "expired_password" : MessageLookupByLibrary.simpleMessage("A tua palavra-passe expirou"), + "fail_to_authenticate" : MessageLookupByLibrary.simpleMessage("Falha ao autenticar"), + "failed_login" : MessageLookupByLibrary.simpleMessage("O login falhou"), + "fee_date" : MessageLookupByLibrary.simpleMessage("Data limite próxima prestação:"), + "fee_notification" : MessageLookupByLibrary.simpleMessage("Data limite de propina"), + "files" : MessageLookupByLibrary.simpleMessage("Ficheiros"), + "first_year_registration" : MessageLookupByLibrary.simpleMessage("Ano da primeira inscrição: "), + "floor" : MessageLookupByLibrary.simpleMessage("Piso"), + "floors" : MessageLookupByLibrary.simpleMessage("Pisos"), + "forgot_password" : MessageLookupByLibrary.simpleMessage("Esqueceu a palavra-passe?"), + "frequency" : MessageLookupByLibrary.simpleMessage("Obtenção de Frequência"), + "generate_reference" : MessageLookupByLibrary.simpleMessage("Gerar referência"), + "geral_registration" : MessageLookupByLibrary.simpleMessage("Inscrição Geral"), + "improvement_registration" : MessageLookupByLibrary.simpleMessage("Inscrição para Melhoria"), + "increment" : MessageLookupByLibrary.simpleMessage("Incrementar 1,00€"), + "internet_status_exception" : MessageLookupByLibrary.simpleMessage("Verifique sua conexão com a internet"), + "invalid_credentials" : MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), + "keep_login" : MessageLookupByLibrary.simpleMessage("Manter sessão"), + "language" : MessageLookupByLibrary.simpleMessage("Idioma"), + "last_refresh_time" : m0, + "last_timestamp" : m1, + "library_occupation" : MessageLookupByLibrary.simpleMessage("Ocupação da Biblioteca"), + "load_error" : MessageLookupByLibrary.simpleMessage("Erro ao carregar a informação"), + "loading_terms" : MessageLookupByLibrary.simpleMessage("Carregando os Termos e Condições..."), + "login" : MessageLookupByLibrary.simpleMessage("Entrar"), + "login_with_credentials" : MessageLookupByLibrary.simpleMessage("Iniciar sessão com credenciais"), + "logout" : MessageLookupByLibrary.simpleMessage("Terminar sessão"), + "menus" : MessageLookupByLibrary.simpleMessage("Ementas"), + "min_value_reference" : MessageLookupByLibrary.simpleMessage("Valor mínimo: 1,00 €"), + "multimedia_center" : MessageLookupByLibrary.simpleMessage("Centro de multimédia"), + "nav_title" : m2, + "news" : MessageLookupByLibrary.simpleMessage("Notícias"), + "no" : MessageLookupByLibrary.simpleMessage("Não"), + "no_app" : MessageLookupByLibrary.simpleMessage("Nenhuma aplicação encontrada para abrir o ficheiro"), + "no_bus" : MessageLookupByLibrary.simpleMessage("Não percas nenhum autocarro!"), + "no_bus_stops" : MessageLookupByLibrary.simpleMessage("Não existe nenhuma paragem configurada"), + "no_class" : MessageLookupByLibrary.simpleMessage("Não existem turmas para apresentar"), + "no_classes" : MessageLookupByLibrary.simpleMessage("Não existem aulas para apresentar"), + "no_classes_on" : MessageLookupByLibrary.simpleMessage("Não possui aulas à"), + "no_classes_on_weekend" : MessageLookupByLibrary.simpleMessage("Não possui aulas ao"), + "no_college" : MessageLookupByLibrary.simpleMessage("sem faculdade"), + "no_course_units" : MessageLookupByLibrary.simpleMessage("Sem cadeiras no período selecionado"), + "no_data" : MessageLookupByLibrary.simpleMessage("Não há dados a mostrar neste momento"), + "no_date" : MessageLookupByLibrary.simpleMessage("Sem data"), + "no_events" : MessageLookupByLibrary.simpleMessage("Nenhum evento encontrado"), + "no_exams" : MessageLookupByLibrary.simpleMessage("Não possui exames marcados"), + "no_exams_label" : MessageLookupByLibrary.simpleMessage("Parece que estás de férias!"), + "no_favorite_restaurants" : MessageLookupByLibrary.simpleMessage("Sem restaurantes favoritos"), + "no_files_found" : MessageLookupByLibrary.simpleMessage("Nenhum ficheiro encontrado"), + "no_info" : MessageLookupByLibrary.simpleMessage("Não existem informações para apresentar"), + "no_internet" : MessageLookupByLibrary.simpleMessage("Parece que estás offline"), + "no_library_info" : MessageLookupByLibrary.simpleMessage("Sem informação de ocupação"), + "no_link" : MessageLookupByLibrary.simpleMessage("Não conseguimos abrir o link"), + "no_menu_info" : MessageLookupByLibrary.simpleMessage("Não há informação disponível sobre refeições"), + "no_menus" : MessageLookupByLibrary.simpleMessage("Não há refeições disponíveis"), + "no_name_course" : MessageLookupByLibrary.simpleMessage("Curso sem nome"), + "no_places_info" : MessageLookupByLibrary.simpleMessage("Não há informação disponível sobre locais"), + "no_print_info" : MessageLookupByLibrary.simpleMessage("Sem informação de saldo"), + "no_references" : MessageLookupByLibrary.simpleMessage("Não existem referências a pagar"), + "no_results" : MessageLookupByLibrary.simpleMessage("Sem resultados"), + "no_selected_courses" : MessageLookupByLibrary.simpleMessage("Não existem cadeiras para apresentar"), + "no_selected_exams" : MessageLookupByLibrary.simpleMessage("Não existem exames para apresentar"), + "no_trips" : MessageLookupByLibrary.simpleMessage("Não há viagens planeadas de momento"), + "notifications" : MessageLookupByLibrary.simpleMessage("Notificações"), + "occurrence_type" : MessageLookupByLibrary.simpleMessage("Tipo de ocorrência"), + "of_month" : MessageLookupByLibrary.simpleMessage("de"), + "open_error" : MessageLookupByLibrary.simpleMessage("Erro ao abrir o ficheiro"), + "other_links" : MessageLookupByLibrary.simpleMessage("Outros links"), + "pass_change_request" : MessageLookupByLibrary.simpleMessage("Por razões de segurança, as palavras-passe têm de ser alteradas periodicamente."), + "password" : MessageLookupByLibrary.simpleMessage("palavra-passe"), + "pendent_references" : MessageLookupByLibrary.simpleMessage("Referências pendentes"), + "permission_denied" : MessageLookupByLibrary.simpleMessage("Sem permissão"), + "personal_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento presencial"), + "press_again" : MessageLookupByLibrary.simpleMessage("Pressione novamente para sair"), + "print" : MessageLookupByLibrary.simpleMessage("Impressão"), + "prints" : MessageLookupByLibrary.simpleMessage("Impressões"), + "problem_id" : MessageLookupByLibrary.simpleMessage("Breve identificação do problema"), + "program" : MessageLookupByLibrary.simpleMessage("Programa"), + "reference_sigarra_help" : MessageLookupByLibrary.simpleMessage("Os dados da referência gerada aparecerão no Sigarra, conta corrente. Perfil > Conta Corrente"), + "reference_success" : MessageLookupByLibrary.simpleMessage("Referência criada com sucesso!"), + "remove" : MessageLookupByLibrary.simpleMessage("Remover"), + "report_error" : MessageLookupByLibrary.simpleMessage("Reportar erro"), + "report_error_suggestion" : MessageLookupByLibrary.simpleMessage("Reportar erro/sugestão"), + "restaurant_main_page" : MessageLookupByLibrary.simpleMessage("Queres ver os teus restaurantes favoritos na página principal?"), + "room" : MessageLookupByLibrary.simpleMessage("Sala"), + "school_calendar" : MessageLookupByLibrary.simpleMessage("Calendário Escolar"), + "search" : MessageLookupByLibrary.simpleMessage("Pesquisar"), + "semester" : MessageLookupByLibrary.simpleMessage("Semestre"), + "send" : MessageLookupByLibrary.simpleMessage("Enviar"), + "sent_error" : MessageLookupByLibrary.simpleMessage("Ocorreu um erro no envio"), + "settings" : MessageLookupByLibrary.simpleMessage("Definições"), + "some_error" : MessageLookupByLibrary.simpleMessage("Algum erro!"), + "stcp_stops" : MessageLookupByLibrary.simpleMessage("STCP - Próximas Viagens"), + "student_number" : MessageLookupByLibrary.simpleMessage("número de estudante"), + "success" : MessageLookupByLibrary.simpleMessage("Enviado com sucesso"), + "successful_open" : MessageLookupByLibrary.simpleMessage("Ficheiro aberto com sucesso"), + "tele_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento telefónico"), + "tele_personal_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento presencial e telefónico"), + "telephone" : MessageLookupByLibrary.simpleMessage("Telefone"), + "terms" : MessageLookupByLibrary.simpleMessage("Termos e Condições"), + "theme" : MessageLookupByLibrary.simpleMessage("Tema"), + "title" : MessageLookupByLibrary.simpleMessage("Título"), + "try_again" : MessageLookupByLibrary.simpleMessage("Tentar de novo"), + "try_different_login" : MessageLookupByLibrary.simpleMessage("Problemas a iniciar sessão? Experimenta o login alternativo"), + "uc_info" : MessageLookupByLibrary.simpleMessage("Abrir página da UC"), + "unavailable" : MessageLookupByLibrary.simpleMessage("Indisponível"), + "valid_email" : MessageLookupByLibrary.simpleMessage("Por favor insere um email válido"), + "widget_prompt" : MessageLookupByLibrary.simpleMessage("Escolhe um widget para adicionares à tua área pessoal:"), + "wrong_credentials_exception" : MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), + "year" : MessageLookupByLibrary.simpleMessage("Ano"), + "yes" : MessageLookupByLibrary.simpleMessage("Sim") + }; } diff --git a/packages/uni_app/lib/generated/l10n.dart b/packages/uni_app/lib/generated/l10n.dart index 4201d66c1..e0578285c 100644 --- a/packages/uni_app/lib/generated/l10n.dart +++ b/packages/uni_app/lib/generated/l10n.dart @@ -18,31 +18,28 @@ class S { static S? _current; static S get current { - assert(_current != null, - 'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.'); + assert(_current != null, 'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.'); return _current!; } - static const AppLocalizationDelegate delegate = AppLocalizationDelegate(); + static const AppLocalizationDelegate delegate = + AppLocalizationDelegate(); static Future load(Locale locale) { - final name = (locale.countryCode?.isEmpty ?? false) - ? locale.languageCode - : locale.toString(); - final localeName = Intl.canonicalizedLocale(name); + final name = (locale.countryCode?.isEmpty ?? false) ? locale.languageCode : locale.toString(); + final localeName = Intl.canonicalizedLocale(name); return initializeMessages(localeName).then((_) { Intl.defaultLocale = localeName; final instance = S(); S._current = instance; - + return instance; }); - } + } static S of(BuildContext context) { final instance = S.maybeOf(context); - assert(instance != null, - 'No instance of S present in the widget tree. Did you add S.delegate in localizationsDelegates?'); + assert(instance != null, 'No instance of S present in the widget tree. Did you add S.delegate in localizationsDelegates?'); return instance!; } @@ -600,6 +597,16 @@ class S { ); } + /// `Eligibility for exams` + String get frequency { + return Intl.message( + 'Eligibility for exams', + name: 'frequency', + desc: '', + args: [], + ); + } + /// `Exams Filter Settings` String get exams_filter { return Intl.message( @@ -1724,4 +1731,4 @@ class AppLocalizationDelegate extends LocalizationsDelegate { } return false; } -} +} \ No newline at end of file diff --git a/packages/uni_app/lib/l10n/intl_en.arb b/packages/uni_app/lib/l10n/intl_en.arb index 5e3eb22a6..47ffafa46 100644 --- a/packages/uni_app/lib/l10n/intl_en.arb +++ b/packages/uni_app/lib/l10n/intl_en.arb @@ -110,6 +110,8 @@ "@empty_text": {}, "evaluation": "Evaluation", "@evaluation": {}, + "frequency": "Eligibility for exams", + "@frequency": {}, "exams_filter": "Exams Filter Settings", "@exams_filter": {}, "expired_password": "Your password has expired", diff --git a/packages/uni_app/lib/l10n/intl_pt_PT.arb b/packages/uni_app/lib/l10n/intl_pt_PT.arb index 4212fe69c..a149d9e6a 100644 --- a/packages/uni_app/lib/l10n/intl_pt_PT.arb +++ b/packages/uni_app/lib/l10n/intl_pt_PT.arb @@ -112,6 +112,8 @@ "@empty_text": {}, "evaluation": "Avaliação", "@evaluation": {}, + "frequency": "Obtenção de Frequência", + "@frequency": {}, "exams_filter": "Definições Filtro de Exames", "@exams_filter": {}, "expired_password": "A tua palavra-passe expirou", diff --git a/packages/uni_app/lib/model/entities/course_units/sheet.dart b/packages/uni_app/lib/model/entities/course_units/sheet.dart index d33f77696..4d5cba04a 100644 --- a/packages/uni_app/lib/model/entities/course_units/sheet.dart +++ b/packages/uni_app/lib/model/entities/course_units/sheet.dart @@ -5,15 +5,17 @@ import 'package:uni/controller/parsers/parser_course_unit_info.dart'; class Sheet { Sheet({ required this.professors, + required this.regents, required this.content, required this.evaluation, - required this.regents, + required this.frequency, required this.books, }); List professors; List regents; String content; String evaluation; + String frequency; List books; } @@ -22,6 +24,14 @@ class Book { String title; String isbn; + + @override + String toString() { + if (isbn.isEmpty) { + return 'Book(title: $title)'; + } + return 'Book(title: $title, isbn: $isbn)'; + } } class Professor { diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 0fe6e01bf..2023dae60 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -64,6 +64,11 @@ class CourseUnitSheetView extends StatelessWidget { courseUnitSheet.evaluation, context, ), + _buildCard( + S.of(context).frequency, + courseUnitSheet.frequency, + context, + ), if (courseUnitSheet.books.isNotEmpty) ...[ const Opacity( opacity: 0.25, @@ -188,58 +193,7 @@ class CourseUnitSheetView extends StatelessWidget { Widget _buildExamsRow(BuildContext context, List exams) { bool isMock = false; - - if (isMock) { - final List mockExams = [ - Exam( - 'mock1', - DateTime(2024, 12, 10, 9, 0), - DateTime(2024, 12, 10, 11, 0), - 'RCOM', - ['B315', 'B224', 'B207'], - 'MT', - 'Faculty of Science', - ), - Exam( - 'RCOM', - DateTime(2025, 01, 15, 14, 30), - DateTime(2025, 01, 15, 16, 00), - 'SDLE', - ['B315', 'B224', 'B207'], - 'EN', - 'Faculty of Science', - ), - Exam( - 'RCOM', - DateTime(2025, 02, 20, 10, 00), - DateTime(2025, 02, 20, 12, 30), - 'SDLE', - ['FC4126'], - 'ER', - 'Faculty of Science', - ), - ]; - return Row( - children: mockExams.map((exam) { - return Padding( - padding: const EdgeInsets.only(right: 8), - child: SizedBox( - width: 240, - child: ExamCard( - name: 'Redes de Computadores', - acronym: exam.subject, - rooms: exam.rooms, - type: exam.examType, - startTime: exam.startTime, - examDay: exam.start.day.toString(), - examMonth: exam.monthAcronym(PreferencesController.getLocale()), - showIcon: false, - ), - ), - ); - }).toList(), - ); - } + if (isMock) exams = getMockExams(); if (exams.isEmpty) { return const Center( @@ -366,3 +320,36 @@ class _InstructorAvatar extends StatelessWidget { ); } } + + +List getMockExams() { + return [ + Exam( + 'mock1', + DateTime(2024, 12, 10, 9, 0), + DateTime(2024, 12, 10, 11, 0), + 'RCOM', + ['B315', 'B224', 'B207'], + 'MT', + 'Faculty of Science', + ), + Exam( + 'RCOM', + DateTime(2025, 01, 15, 14, 30), + DateTime(2025, 01, 15, 16, 00), + 'SDLE', + ['B315', 'B224', 'B207'], + 'EN', + 'Faculty of Science', + ), + Exam( + 'RCOM', + DateTime(2025, 02, 20, 10, 00), + DateTime(2025, 02, 20, 12, 30), + 'SDLE', + ['FC4126'], + 'ER', + 'Faculty of Science', + ), + ]; +} From 973bcd9541eec687eadbef7d61bb7a7baac9f6fa Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Sat, 28 Dec 2024 18:29:23 +0000 Subject: [PATCH 27/32] Add information indicating whether the professor is a regent --- .../parsers/parser_course_unit_info.dart | 14 +++- .../model/entities/course_units/sheet.dart | 4 +- .../widgets/course_unit_sheet.dart | 68 +++++-------------- 3 files changed, 31 insertions(+), 55 deletions(-) diff --git a/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart b/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart index e315025fd..32a1c5368 100644 --- a/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart +++ b/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart @@ -54,10 +54,21 @@ Future parseSheet(http.Response response) async { .toList(), ); - final regents = (json['responsabilidades'] as List).map((element) { + final regentsJson = (json['responsabilidades'] as List).map((element) { return Professor.fromJson(element as Map); }).toList(); + for (final regent in regentsJson) { + final existingProfessorIndex = + professors.indexWhere((professor) => professor.code == regent.code); + if (existingProfessorIndex != -1) { + professors[existingProfessorIndex].isRegent = true; + } else { + regent.isRegent = true; + professors.add(regent); + } + } + final books = (json['bibliografia'] as List? ?? []) .map((element) => element as Map) .map((element) { @@ -69,7 +80,6 @@ Future parseSheet(http.Response response) async { return Sheet( professors: professors, - regents: regents, content: json['conteudo'].toString(), evaluation: json['for_avaliacao'].toString(), frequency: json['cond_frequencia'].toString(), diff --git a/packages/uni_app/lib/model/entities/course_units/sheet.dart b/packages/uni_app/lib/model/entities/course_units/sheet.dart index 4d5cba04a..1fa0491bf 100644 --- a/packages/uni_app/lib/model/entities/course_units/sheet.dart +++ b/packages/uni_app/lib/model/entities/course_units/sheet.dart @@ -5,14 +5,12 @@ import 'package:uni/controller/parsers/parser_course_unit_info.dart'; class Sheet { Sheet({ required this.professors, - required this.regents, required this.content, required this.evaluation, required this.frequency, required this.books, }); List professors; - List regents; String content; String evaluation; String frequency; @@ -40,6 +38,7 @@ class Professor { required this.name, required this.classes, this.picture, + this.isRegent = false, }); factory Professor.fromJson(Map json) { @@ -54,6 +53,7 @@ class Professor { String code; String name; List classes; + bool isRegent; @override bool operator ==(Object other) { diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 2023dae60..cf31e66a6 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -39,7 +39,9 @@ class CourseUnitSheetView extends StatelessWidget { else AnimatedExpandable( firstChild: _buildLimitedInstructorsRow( - context, courseUnitSheet.professors), + context, + courseUnitSheet.professors, + ), secondChild: _buildInstructorsRow(context, courseUnitSheet.professors), ), @@ -51,13 +53,19 @@ class CourseUnitSheetView extends StatelessWidget { 'Assessments', style: TextStyle(fontSize: 20), ), - SizedBox( - height: 100, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: _buildExamsRow(context, exams), + if (exams.isEmpty) + const Padding( + padding: EdgeInsets.only(top: 8.0), + child: Text('No exams scheduled'), + ) + else + SizedBox( + height: 100, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: _buildExamsRow(context, exams), + ), ), - ), _buildCard(S.of(context).program, courseUnitSheet.content, context), _buildCard( S.of(context).evaluation, @@ -179,8 +187,8 @@ class CourseUnitSheetView extends StatelessWidget { overflow: TextOverflow.ellipsis, ), ), - const Text( - 'Lead Instructor', + Text( + instructor.isRegent ? 'Course Regent' : 'Instructor', style: TextStyle(fontSize: 12, color: Colors.grey), ), ], @@ -192,15 +200,6 @@ class CourseUnitSheetView extends StatelessWidget { } Widget _buildExamsRow(BuildContext context, List exams) { - bool isMock = false; - if (isMock) exams = getMockExams(); - - if (exams.isEmpty) { - return const Center( - child: Text('No exams scheduled'), - ); - } - return Row( children: exams.map((exam) { return Padding( @@ -320,36 +319,3 @@ class _InstructorAvatar extends StatelessWidget { ); } } - - -List getMockExams() { - return [ - Exam( - 'mock1', - DateTime(2024, 12, 10, 9, 0), - DateTime(2024, 12, 10, 11, 0), - 'RCOM', - ['B315', 'B224', 'B207'], - 'MT', - 'Faculty of Science', - ), - Exam( - 'RCOM', - DateTime(2025, 01, 15, 14, 30), - DateTime(2025, 01, 15, 16, 00), - 'SDLE', - ['B315', 'B224', 'B207'], - 'EN', - 'Faculty of Science', - ), - Exam( - 'RCOM', - DateTime(2025, 02, 20, 10, 00), - DateTime(2025, 02, 20, 12, 30), - 'SDLE', - ['FC4126'], - 'ER', - 'Faculty of Science', - ), - ]; -} From 814c44ea57e22304cedb1760c4d3312d4b30a27c Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Tue, 7 Jan 2025 00:08:10 +0000 Subject: [PATCH 28/32] Added translations to course unit sheet --- .../lib/generated/intl/messages_en.dart | 457 ++++++++++------- .../lib/generated/intl/messages_pt_PT.dart | 459 +++++++++++------- packages/uni_app/lib/generated/l10n.dart | 81 +++- packages/uni_app/lib/l10n/intl_en.arb | 20 +- packages/uni_app/lib/l10n/intl_pt_PT.arb | 20 +- .../widgets/course_unit_sheet.dart | 56 ++- 6 files changed, 721 insertions(+), 372 deletions(-) diff --git a/packages/uni_app/lib/generated/intl/messages_en.dart b/packages/uni_app/lib/generated/intl/messages_en.dart index 1dfe85713..76ee1943f 100644 --- a/packages/uni_app/lib/generated/intl/messages_en.dart +++ b/packages/uni_app/lib/generated/intl/messages_en.dart @@ -21,175 +21,296 @@ class MessageLookup extends MessageLookupByLibrary { static m0(time) => "last refresh at ${time}"; - static m1(time) => "${Intl.plural(time, zero: 'Refreshed ${time} minutes ago', one: 'Refreshed ${time} minute ago', other: 'Refreshed ${time} minutes ago')}"; + static m1(time) => + "${Intl.plural(time, zero: 'Refreshed ${time} minutes ago', one: 'Refreshed ${time} minute ago', other: 'Refreshed ${time} minutes ago')}"; - static m2(title) => "${Intl.select(title, {'horario': 'Schedule', 'exames': 'Exams', 'area': 'Personal Area', 'cadeiras': 'Course Units', 'autocarros': 'Buses', 'locais': 'Places', 'restaurantes': 'Restaurants', 'calendario': 'Calendar', 'biblioteca': 'Library', 'percurso_academico': 'Academic Path', 'transportes': 'Transports', 'faculdade': 'Faculty', 'other': 'Other', })}"; + static m2(number) => "${number} more"; + + static m3(title) => "${Intl.select(title, { + 'horario': 'Schedule', + 'exames': 'Exams', + 'area': 'Personal Area', + 'cadeiras': 'Course Units', + 'autocarros': 'Buses', + 'locais': 'Places', + 'restaurantes': 'Restaurants', + 'calendario': 'Calendar', + 'biblioteca': 'Library', + 'percurso_academico': 'Academic Path', + 'transportes': 'Transports', + 'faculdade': 'Faculty', + 'other': 'Other', + })}"; final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "about" : MessageLookupByLibrary.simpleMessage("About us"), - "academic_services" : MessageLookupByLibrary.simpleMessage("Academic services"), - "account_card_title" : MessageLookupByLibrary.simpleMessage("Checking account"), - "add" : MessageLookupByLibrary.simpleMessage("Add"), - "add_quota" : MessageLookupByLibrary.simpleMessage("Add quota"), - "add_widget" : MessageLookupByLibrary.simpleMessage("Add widget"), - "agree_terms" : MessageLookupByLibrary.simpleMessage("By entering you confirm that you agree with these Terms and Conditions"), - "all_widgets_added" : MessageLookupByLibrary.simpleMessage("All available widgets have already been added to your personal area!"), - "at_least_one_college" : MessageLookupByLibrary.simpleMessage("Select at least one college"), - "available_amount" : MessageLookupByLibrary.simpleMessage("Available amount"), - "average" : MessageLookupByLibrary.simpleMessage("Average: "), - "balance" : MessageLookupByLibrary.simpleMessage("Balance:"), - "banner_info" : MessageLookupByLibrary.simpleMessage("We do now collect anonymous usage statistics in order to improve your experience. You can change it in settings."), - "bibliography" : MessageLookupByLibrary.simpleMessage("Bibliography"), - "bs_description" : MessageLookupByLibrary.simpleMessage("Did you find any bugs in the application?\nDo you have any suggestions for the app?\nTell us so we can improve!"), - "bug_description" : MessageLookupByLibrary.simpleMessage("Bug found, how to reproduce it, etc."), - "bus_error" : MessageLookupByLibrary.simpleMessage("Unable to get information"), - "bus_information" : MessageLookupByLibrary.simpleMessage("Select the buses you want information about:"), - "buses_personalize" : MessageLookupByLibrary.simpleMessage("Personalize your buses here"), - "buses_text" : MessageLookupByLibrary.simpleMessage("Favorite buses will be displayed in the favorites \'Bus\' widget. The remaining ones will only be displayed on the page."), - "cancel" : MessageLookupByLibrary.simpleMessage("Cancel"), - "change" : MessageLookupByLibrary.simpleMessage("Change"), - "change_prompt" : MessageLookupByLibrary.simpleMessage("Do you want to change the password?"), - "check_internet" : MessageLookupByLibrary.simpleMessage("Check your internet connection"), - "class_registration" : MessageLookupByLibrary.simpleMessage("Class Registration"), - "collect_usage_stats" : MessageLookupByLibrary.simpleMessage("Collect usage statistics"), - "college" : MessageLookupByLibrary.simpleMessage("College: "), - "college_select" : MessageLookupByLibrary.simpleMessage("select your college(s)"), - "conclude" : MessageLookupByLibrary.simpleMessage("Done"), - "configured_buses" : MessageLookupByLibrary.simpleMessage("Configured Buses"), - "confirm" : MessageLookupByLibrary.simpleMessage("Confirm"), - "confirm_logout" : MessageLookupByLibrary.simpleMessage("Do you really want to log out? Your local data will be deleted and you will have to log in again."), - "consent" : MessageLookupByLibrary.simpleMessage("I consent to this information being reviewed by NIAEFEUP and may be deleted at my request."), - "contact" : MessageLookupByLibrary.simpleMessage("Contact (optional)"), - "copy_center" : MessageLookupByLibrary.simpleMessage("Copy center"), - "copy_center_building" : MessageLookupByLibrary.simpleMessage("Floor -1 of building B | AEFEUP building"), - "course_class" : MessageLookupByLibrary.simpleMessage("Classes"), - "course_info" : MessageLookupByLibrary.simpleMessage("Info"), - "current_state" : MessageLookupByLibrary.simpleMessage("Current state: "), - "current_year" : MessageLookupByLibrary.simpleMessage("Current academic year: "), - "decrement" : MessageLookupByLibrary.simpleMessage("Decrement 1,00€"), - "description" : MessageLookupByLibrary.simpleMessage("Description"), - "desired_email" : MessageLookupByLibrary.simpleMessage("Email where you want to be contacted"), - "dona_bia" : MessageLookupByLibrary.simpleMessage("D. Beatriz\'s stationery store"), - "dona_bia_building" : MessageLookupByLibrary.simpleMessage("Floor -1 of building B (B-142)"), - "download_error" : MessageLookupByLibrary.simpleMessage("Error downloading the file"), - "ects" : MessageLookupByLibrary.simpleMessage("ECTS performed: "), - "edit_off" : MessageLookupByLibrary.simpleMessage("Edit"), - "edit_on" : MessageLookupByLibrary.simpleMessage("Finish editing"), - "empty_text" : MessageLookupByLibrary.simpleMessage("Please fill in this field"), - "evaluation" : MessageLookupByLibrary.simpleMessage("Evaluation"), - "exams_filter" : MessageLookupByLibrary.simpleMessage("Exams Filter Settings"), - "exit_confirm" : MessageLookupByLibrary.simpleMessage("Do you really want to exit?"), - "expired_password" : MessageLookupByLibrary.simpleMessage("Your password has expired"), - "fail_to_authenticate" : MessageLookupByLibrary.simpleMessage("Failed to authenticate"), - "failed_login" : MessageLookupByLibrary.simpleMessage("Login failed"), - "fee_date" : MessageLookupByLibrary.simpleMessage("Deadline for next fee:"), - "fee_notification" : MessageLookupByLibrary.simpleMessage("Fee deadline"), - "files" : MessageLookupByLibrary.simpleMessage("Files"), - "first_year_registration" : MessageLookupByLibrary.simpleMessage("Year of first registration: "), - "floor" : MessageLookupByLibrary.simpleMessage("Floor"), - "floors" : MessageLookupByLibrary.simpleMessage("Floors"), - "forgot_password" : MessageLookupByLibrary.simpleMessage("Forgot password?"), - "frequency" : MessageLookupByLibrary.simpleMessage("Eligibility for exams"), - "generate_reference" : MessageLookupByLibrary.simpleMessage("Generate reference"), - "geral_registration" : MessageLookupByLibrary.simpleMessage("General Registration"), - "improvement_registration" : MessageLookupByLibrary.simpleMessage("Enrollment for Improvement"), - "increment" : MessageLookupByLibrary.simpleMessage("Increment 1,00€"), - "internet_status_exception" : MessageLookupByLibrary.simpleMessage("Check your internet connection"), - "invalid_credentials" : MessageLookupByLibrary.simpleMessage("Invalid credentials"), - "keep_login" : MessageLookupByLibrary.simpleMessage("Stay signed in"), - "language" : MessageLookupByLibrary.simpleMessage("Language"), - "last_refresh_time" : m0, - "last_timestamp" : m1, - "library_occupation" : MessageLookupByLibrary.simpleMessage("Library Occupation"), - "load_error" : MessageLookupByLibrary.simpleMessage("Error loading the information"), - "loading_terms" : MessageLookupByLibrary.simpleMessage("Loading Terms and Conditions..."), - "login" : MessageLookupByLibrary.simpleMessage("Login"), - "login_with_credentials" : MessageLookupByLibrary.simpleMessage("Login with credentials"), - "logout" : MessageLookupByLibrary.simpleMessage("Log out"), - "menus" : MessageLookupByLibrary.simpleMessage("Menus"), - "min_value_reference" : MessageLookupByLibrary.simpleMessage("Minimum value: 1,00 €"), - "multimedia_center" : MessageLookupByLibrary.simpleMessage("Multimedia center"), - "nav_title" : m2, - "news" : MessageLookupByLibrary.simpleMessage("News"), - "no" : MessageLookupByLibrary.simpleMessage("No"), - "no_app" : MessageLookupByLibrary.simpleMessage("No app found to open the file"), - "no_bus" : MessageLookupByLibrary.simpleMessage("Don\'t miss any bus!"), - "no_bus_stops" : MessageLookupByLibrary.simpleMessage("No configured stops"), - "no_class" : MessageLookupByLibrary.simpleMessage("There are no classes to display"), - "no_classes" : MessageLookupByLibrary.simpleMessage("No classes to present"), - "no_classes_on" : MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), - "no_classes_on_weekend" : MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), - "no_college" : MessageLookupByLibrary.simpleMessage("no college"), - "no_course_units" : MessageLookupByLibrary.simpleMessage("No course units in the selected period"), - "no_data" : MessageLookupByLibrary.simpleMessage("There is no data to show at this time"), - "no_date" : MessageLookupByLibrary.simpleMessage("No date"), - "no_events" : MessageLookupByLibrary.simpleMessage("No events found"), - "no_exams" : MessageLookupByLibrary.simpleMessage("You have no exams scheduled\n"), - "no_exams_label" : MessageLookupByLibrary.simpleMessage("Looks like you are on vacation!"), - "no_favorite_restaurants" : MessageLookupByLibrary.simpleMessage("No favorite restaurants"), - "no_files_found" : MessageLookupByLibrary.simpleMessage("No files found"), - "no_info" : MessageLookupByLibrary.simpleMessage("There is no information to display"), - "no_internet" : MessageLookupByLibrary.simpleMessage("It looks like you\'re offline"), - "no_library_info" : MessageLookupByLibrary.simpleMessage("No library occupation information available"), - "no_link" : MessageLookupByLibrary.simpleMessage("We couldn\'t open the link"), - "no_menu_info" : MessageLookupByLibrary.simpleMessage("There is no information available about meals"), - "no_menus" : MessageLookupByLibrary.simpleMessage("There are no meals available"), - "no_name_course" : MessageLookupByLibrary.simpleMessage("Unnamed course"), - "no_places_info" : MessageLookupByLibrary.simpleMessage("There is no information available about places"), - "no_print_info" : MessageLookupByLibrary.simpleMessage("No print balance information"), - "no_references" : MessageLookupByLibrary.simpleMessage("There are no references to pay"), - "no_results" : MessageLookupByLibrary.simpleMessage("No match"), - "no_selected_courses" : MessageLookupByLibrary.simpleMessage("There are no course units to display"), - "no_selected_exams" : MessageLookupByLibrary.simpleMessage("There are no exams to present"), - "no_trips" : MessageLookupByLibrary.simpleMessage("No trips found at the moment"), - "notifications" : MessageLookupByLibrary.simpleMessage("Notifications"), - "occurrence_type" : MessageLookupByLibrary.simpleMessage("Type of occurrence"), - "of_month" : MessageLookupByLibrary.simpleMessage("of"), - "open_error" : MessageLookupByLibrary.simpleMessage("Error opening the file"), - "other_links" : MessageLookupByLibrary.simpleMessage("Other links"), - "pass_change_request" : MessageLookupByLibrary.simpleMessage("For security reasons, passwords must be changed periodically."), - "password" : MessageLookupByLibrary.simpleMessage("password"), - "pendent_references" : MessageLookupByLibrary.simpleMessage("Pending references"), - "permission_denied" : MessageLookupByLibrary.simpleMessage("Permission denied"), - "personal_assistance" : MessageLookupByLibrary.simpleMessage("Face-to-face assistance"), - "press_again" : MessageLookupByLibrary.simpleMessage("Press again to exit"), - "print" : MessageLookupByLibrary.simpleMessage("Print"), - "prints" : MessageLookupByLibrary.simpleMessage("Prints"), - "problem_id" : MessageLookupByLibrary.simpleMessage("Brief identification of the problem"), - "program" : MessageLookupByLibrary.simpleMessage("Program"), - "reference_sigarra_help" : MessageLookupByLibrary.simpleMessage("The generated reference data will appear in Sigarra, checking account.\nProfile > Checking Account"), - "reference_success" : MessageLookupByLibrary.simpleMessage("Reference created successfully!"), - "remove" : MessageLookupByLibrary.simpleMessage("Delete"), - "report_error" : MessageLookupByLibrary.simpleMessage("Report error"), - "report_error_suggestion" : MessageLookupByLibrary.simpleMessage("Report error/suggestion"), - "restaurant_main_page" : MessageLookupByLibrary.simpleMessage("Do you want to see your favorite restaurants in the main page?"), - "room" : MessageLookupByLibrary.simpleMessage("Room"), - "school_calendar" : MessageLookupByLibrary.simpleMessage("School Calendar"), - "search" : MessageLookupByLibrary.simpleMessage("Search"), - "semester" : MessageLookupByLibrary.simpleMessage("Semester"), - "send" : MessageLookupByLibrary.simpleMessage("Send"), - "sent_error" : MessageLookupByLibrary.simpleMessage("An error occurred in sending"), - "settings" : MessageLookupByLibrary.simpleMessage("Settings"), - "some_error" : MessageLookupByLibrary.simpleMessage("Some error!"), - "stcp_stops" : MessageLookupByLibrary.simpleMessage("STCP - Upcoming Trips"), - "student_number" : MessageLookupByLibrary.simpleMessage("student number"), - "success" : MessageLookupByLibrary.simpleMessage("Sent with success"), - "successful_open" : MessageLookupByLibrary.simpleMessage("File opened successfully"), - "tele_assistance" : MessageLookupByLibrary.simpleMessage("Telephone assistance"), - "tele_personal_assistance" : MessageLookupByLibrary.simpleMessage("Face-to-face and telephone assistance"), - "telephone" : MessageLookupByLibrary.simpleMessage("Telephone"), - "terms" : MessageLookupByLibrary.simpleMessage("Terms and Conditions"), - "theme" : MessageLookupByLibrary.simpleMessage("Theme"), - "title" : MessageLookupByLibrary.simpleMessage("Title"), - "try_again" : MessageLookupByLibrary.simpleMessage("Try again"), - "try_different_login" : MessageLookupByLibrary.simpleMessage("Problems with login? Try a different login"), - "uc_info" : MessageLookupByLibrary.simpleMessage("Open UC page"), - "unavailable" : MessageLookupByLibrary.simpleMessage("Unavailable"), - "valid_email" : MessageLookupByLibrary.simpleMessage("Please enter a valid email"), - "widget_prompt" : MessageLookupByLibrary.simpleMessage("Choose a widget to add to your personal area:"), - "wrong_credentials_exception" : MessageLookupByLibrary.simpleMessage("Invalid credentials"), - "year" : MessageLookupByLibrary.simpleMessage("Year"), - "yes" : MessageLookupByLibrary.simpleMessage("Yes") - }; + static _notInlinedMessages(_) => { + "about": MessageLookupByLibrary.simpleMessage("About us"), + "academic_services": + MessageLookupByLibrary.simpleMessage("Academic services"), + "account_card_title": + MessageLookupByLibrary.simpleMessage("Checking account"), + "add": MessageLookupByLibrary.simpleMessage("Add"), + "add_quota": MessageLookupByLibrary.simpleMessage("Add quota"), + "add_widget": MessageLookupByLibrary.simpleMessage("Add widget"), + "agree_terms": MessageLookupByLibrary.simpleMessage( + "By entering you confirm that you agree with these Terms and Conditions"), + "all_widgets_added": MessageLookupByLibrary.simpleMessage( + "All available widgets have already been added to your personal area!"), + "assessments": MessageLookupByLibrary.simpleMessage("Assessments"), + "at_least_one_college": + MessageLookupByLibrary.simpleMessage("Select at least one college"), + "available_amount": + MessageLookupByLibrary.simpleMessage("Available amount"), + "average": MessageLookupByLibrary.simpleMessage("Average: "), + "balance": MessageLookupByLibrary.simpleMessage("Balance:"), + "banner_info": MessageLookupByLibrary.simpleMessage( + "We do now collect anonymous usage statistics in order to improve your experience. You can change it in settings."), + "bibliography": MessageLookupByLibrary.simpleMessage("Bibliography"), + "bs_description": MessageLookupByLibrary.simpleMessage( + "Did you find any bugs in the application?\nDo you have any suggestions for the app?\nTell us so we can improve!"), + "bug_description": MessageLookupByLibrary.simpleMessage( + "Bug found, how to reproduce it, etc."), + "bus_error": + MessageLookupByLibrary.simpleMessage("Unable to get information"), + "bus_information": MessageLookupByLibrary.simpleMessage( + "Select the buses you want information about:"), + "buses_personalize": + MessageLookupByLibrary.simpleMessage("Personalize your buses here"), + "buses_text": MessageLookupByLibrary.simpleMessage( + "Favorite buses will be displayed in the favorites \'Bus\' widget. The remaining ones will only be displayed on the page."), + "cancel": MessageLookupByLibrary.simpleMessage("Cancel"), + "change": MessageLookupByLibrary.simpleMessage("Change"), + "change_prompt": MessageLookupByLibrary.simpleMessage( + "Do you want to change the password?"), + "check_internet": MessageLookupByLibrary.simpleMessage( + "Check your internet connection"), + "class_registration": + MessageLookupByLibrary.simpleMessage("Class Registration"), + "collect_usage_stats": + MessageLookupByLibrary.simpleMessage("Collect usage statistics"), + "college": MessageLookupByLibrary.simpleMessage("College: "), + "college_select": + MessageLookupByLibrary.simpleMessage("select your college(s)"), + "conclude": MessageLookupByLibrary.simpleMessage("Done"), + "configured_buses": + MessageLookupByLibrary.simpleMessage("Configured Buses"), + "confirm": MessageLookupByLibrary.simpleMessage("Confirm"), + "confirm_logout": MessageLookupByLibrary.simpleMessage( + "Do you really want to log out? Your local data will be deleted and you will have to log in again."), + "consent": MessageLookupByLibrary.simpleMessage( + "I consent to this information being reviewed by NIAEFEUP and may be deleted at my request."), + "contact": MessageLookupByLibrary.simpleMessage("Contact (optional)"), + "copy_center": MessageLookupByLibrary.simpleMessage("Copy center"), + "copy_center_building": MessageLookupByLibrary.simpleMessage( + "Floor -1 of building B | AEFEUP building"), + "courseRegent": MessageLookupByLibrary.simpleMessage("Course Regent"), + "course_class": MessageLookupByLibrary.simpleMessage("Classes"), + "course_info": MessageLookupByLibrary.simpleMessage("Info"), + "current_state": + MessageLookupByLibrary.simpleMessage("Current state: "), + "current_year": + MessageLookupByLibrary.simpleMessage("Current academic year: "), + "decrement": MessageLookupByLibrary.simpleMessage("Decrement 1,00€"), + "description": MessageLookupByLibrary.simpleMessage("Description"), + "desired_email": MessageLookupByLibrary.simpleMessage( + "Email where you want to be contacted"), + "dona_bia": MessageLookupByLibrary.simpleMessage( + "D. Beatriz\'s stationery store"), + "dona_bia_building": MessageLookupByLibrary.simpleMessage( + "Floor -1 of building B (B-142)"), + "download_error": + MessageLookupByLibrary.simpleMessage("Error downloading the file"), + "ects": MessageLookupByLibrary.simpleMessage("ECTS performed: "), + "edit_off": MessageLookupByLibrary.simpleMessage("Edit"), + "edit_on": MessageLookupByLibrary.simpleMessage("Finish editing"), + "empty_text": + MessageLookupByLibrary.simpleMessage("Please fill in this field"), + "evaluation": MessageLookupByLibrary.simpleMessage("Evaluation"), + "exams_filter": + MessageLookupByLibrary.simpleMessage("Exams Filter Settings"), + "exit_confirm": + MessageLookupByLibrary.simpleMessage("Do you really want to exit?"), + "expired_password": + MessageLookupByLibrary.simpleMessage("Your password has expired"), + "fail_to_authenticate": + MessageLookupByLibrary.simpleMessage("Failed to authenticate"), + "failed_login": MessageLookupByLibrary.simpleMessage("Login failed"), + "fee_date": + MessageLookupByLibrary.simpleMessage("Deadline for next fee:"), + "fee_notification": + MessageLookupByLibrary.simpleMessage("Fee deadline"), + "files": MessageLookupByLibrary.simpleMessage("Files"), + "first_year_registration": MessageLookupByLibrary.simpleMessage( + "Year of first registration: "), + "floor": MessageLookupByLibrary.simpleMessage("Floor"), + "floors": MessageLookupByLibrary.simpleMessage("Floors"), + "forgot_password": + MessageLookupByLibrary.simpleMessage("Forgot password?"), + "frequency": + MessageLookupByLibrary.simpleMessage("Eligibility for exams"), + "generate_reference": + MessageLookupByLibrary.simpleMessage("Generate reference"), + "geral_registration": + MessageLookupByLibrary.simpleMessage("General Registration"), + "improvement_registration": + MessageLookupByLibrary.simpleMessage("Enrollment for Improvement"), + "increment": MessageLookupByLibrary.simpleMessage("Increment 1,00€"), + "instructor": MessageLookupByLibrary.simpleMessage("Instructor"), + "instructors": MessageLookupByLibrary.simpleMessage("Instructors"), + "internet_status_exception": MessageLookupByLibrary.simpleMessage( + "Check your internet connection"), + "invalid_credentials": + MessageLookupByLibrary.simpleMessage("Invalid credentials"), + "keep_login": MessageLookupByLibrary.simpleMessage("Stay signed in"), + "language": MessageLookupByLibrary.simpleMessage("Language"), + "last_refresh_time": m0, + "last_timestamp": m1, + "library_occupation": + MessageLookupByLibrary.simpleMessage("Library Occupation"), + "load_error": MessageLookupByLibrary.simpleMessage( + "Error loading the information"), + "loading_terms": MessageLookupByLibrary.simpleMessage( + "Loading Terms and Conditions..."), + "login": MessageLookupByLibrary.simpleMessage("Login"), + "login_with_credentials": + MessageLookupByLibrary.simpleMessage("Login with credentials"), + "logout": MessageLookupByLibrary.simpleMessage("Log out"), + "menus": MessageLookupByLibrary.simpleMessage("Menus"), + "min_value_reference": + MessageLookupByLibrary.simpleMessage("Minimum value: 1,00 €"), + "moreInstructors": m2, + "multimedia_center": + MessageLookupByLibrary.simpleMessage("Multimedia center"), + "nav_title": m3, + "news": MessageLookupByLibrary.simpleMessage("News"), + "no": MessageLookupByLibrary.simpleMessage("No"), + "noExamsScheduled": + MessageLookupByLibrary.simpleMessage("No exams scheduled"), + "no_app": MessageLookupByLibrary.simpleMessage( + "No app found to open the file"), + "no_bus": MessageLookupByLibrary.simpleMessage("Don\'t miss any bus!"), + "no_bus_stops": + MessageLookupByLibrary.simpleMessage("No configured stops"), + "no_class": MessageLookupByLibrary.simpleMessage( + "There are no classes to display"), + "no_classes": + MessageLookupByLibrary.simpleMessage("No classes to present"), + "no_classes_on": + MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), + "no_classes_on_weekend": + MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), + "no_college": MessageLookupByLibrary.simpleMessage("no college"), + "no_course_units": MessageLookupByLibrary.simpleMessage( + "No course units in the selected period"), + "no_data": MessageLookupByLibrary.simpleMessage( + "There is no data to show at this time"), + "no_date": MessageLookupByLibrary.simpleMessage("No date"), + "no_events": MessageLookupByLibrary.simpleMessage("No events found"), + "no_exams": MessageLookupByLibrary.simpleMessage( + "You have no exams scheduled\n"), + "no_exams_label": MessageLookupByLibrary.simpleMessage( + "Looks like you are on vacation!"), + "no_favorite_restaurants": + MessageLookupByLibrary.simpleMessage("No favorite restaurants"), + "no_files_found": + MessageLookupByLibrary.simpleMessage("No files found"), + "no_info": MessageLookupByLibrary.simpleMessage( + "There is no information to display"), + "no_internet": MessageLookupByLibrary.simpleMessage( + "It looks like you\'re offline"), + "no_library_info": MessageLookupByLibrary.simpleMessage( + "No library occupation information available"), + "no_link": + MessageLookupByLibrary.simpleMessage("We couldn\'t open the link"), + "no_menu_info": MessageLookupByLibrary.simpleMessage( + "There is no information available about meals"), + "no_menus": MessageLookupByLibrary.simpleMessage( + "There are no meals available"), + "no_name_course": + MessageLookupByLibrary.simpleMessage("Unnamed course"), + "no_places_info": MessageLookupByLibrary.simpleMessage( + "There is no information available about places"), + "no_print_info": MessageLookupByLibrary.simpleMessage( + "No print balance information"), + "no_references": MessageLookupByLibrary.simpleMessage( + "There are no references to pay"), + "no_results": MessageLookupByLibrary.simpleMessage("No match"), + "no_selected_courses": MessageLookupByLibrary.simpleMessage( + "There are no course units to display"), + "no_selected_exams": MessageLookupByLibrary.simpleMessage( + "There are no exams to present"), + "no_trips": MessageLookupByLibrary.simpleMessage( + "No trips found at the moment"), + "notifications": MessageLookupByLibrary.simpleMessage("Notifications"), + "occurrence_type": + MessageLookupByLibrary.simpleMessage("Type of occurrence"), + "of_month": MessageLookupByLibrary.simpleMessage("of"), + "open_error": + MessageLookupByLibrary.simpleMessage("Error opening the file"), + "other_links": MessageLookupByLibrary.simpleMessage("Other links"), + "pass_change_request": MessageLookupByLibrary.simpleMessage( + "For security reasons, passwords must be changed periodically."), + "password": MessageLookupByLibrary.simpleMessage("password"), + "pendent_references": + MessageLookupByLibrary.simpleMessage("Pending references"), + "permission_denied": + MessageLookupByLibrary.simpleMessage("Permission denied"), + "personal_assistance": + MessageLookupByLibrary.simpleMessage("Face-to-face assistance"), + "press_again": + MessageLookupByLibrary.simpleMessage("Press again to exit"), + "print": MessageLookupByLibrary.simpleMessage("Print"), + "prints": MessageLookupByLibrary.simpleMessage("Prints"), + "problem_id": MessageLookupByLibrary.simpleMessage( + "Brief identification of the problem"), + "program": MessageLookupByLibrary.simpleMessage("Program"), + "reference_sigarra_help": MessageLookupByLibrary.simpleMessage( + "The generated reference data will appear in Sigarra, checking account.\nProfile > Checking Account"), + "reference_success": MessageLookupByLibrary.simpleMessage( + "Reference created successfully!"), + "remove": MessageLookupByLibrary.simpleMessage("Delete"), + "report_error": MessageLookupByLibrary.simpleMessage("Report error"), + "report_error_suggestion": + MessageLookupByLibrary.simpleMessage("Report error/suggestion"), + "restaurant_main_page": MessageLookupByLibrary.simpleMessage( + "Do you want to see your favorite restaurants in the main page?"), + "room": MessageLookupByLibrary.simpleMessage("Room"), + "school_calendar": + MessageLookupByLibrary.simpleMessage("School Calendar"), + "search": MessageLookupByLibrary.simpleMessage("Search"), + "semester": MessageLookupByLibrary.simpleMessage("Semester"), + "send": MessageLookupByLibrary.simpleMessage("Send"), + "sent_error": MessageLookupByLibrary.simpleMessage( + "An error occurred in sending"), + "settings": MessageLookupByLibrary.simpleMessage("Settings"), + "some_error": MessageLookupByLibrary.simpleMessage("Some error!"), + "stcp_stops": + MessageLookupByLibrary.simpleMessage("STCP - Upcoming Trips"), + "student_number": + MessageLookupByLibrary.simpleMessage("student number"), + "success": MessageLookupByLibrary.simpleMessage("Sent with success"), + "successful_open": + MessageLookupByLibrary.simpleMessage("File opened successfully"), + "tele_assistance": + MessageLookupByLibrary.simpleMessage("Telephone assistance"), + "tele_personal_assistance": MessageLookupByLibrary.simpleMessage( + "Face-to-face and telephone assistance"), + "telephone": MessageLookupByLibrary.simpleMessage("Telephone"), + "terms": MessageLookupByLibrary.simpleMessage("Terms and Conditions"), + "theme": MessageLookupByLibrary.simpleMessage("Theme"), + "title": MessageLookupByLibrary.simpleMessage("Title"), + "try_again": MessageLookupByLibrary.simpleMessage("Try again"), + "try_different_login": MessageLookupByLibrary.simpleMessage( + "Problems with login? Try a different login"), + "uc_info": MessageLookupByLibrary.simpleMessage("Open UC page"), + "unavailable": MessageLookupByLibrary.simpleMessage("Unavailable"), + "valid_email": + MessageLookupByLibrary.simpleMessage("Please enter a valid email"), + "widget_prompt": MessageLookupByLibrary.simpleMessage( + "Choose a widget to add to your personal area:"), + "wrong_credentials_exception": + MessageLookupByLibrary.simpleMessage("Invalid credentials"), + "year": MessageLookupByLibrary.simpleMessage("Year"), + "yes": MessageLookupByLibrary.simpleMessage("Yes") + }; } diff --git a/packages/uni_app/lib/generated/intl/messages_pt_PT.dart b/packages/uni_app/lib/generated/intl/messages_pt_PT.dart index 617ee0727..62aeed357 100644 --- a/packages/uni_app/lib/generated/intl/messages_pt_PT.dart +++ b/packages/uni_app/lib/generated/intl/messages_pt_PT.dart @@ -21,175 +21,298 @@ class MessageLookup extends MessageLookupByLibrary { static m0(time) => "última atualização às ${time}"; - static m1(time) => "${Intl.plural(time, zero: 'Atualizado há ${time} minutos', one: 'Atualizado há ${time} minuto', other: 'Atualizado há ${time} minutos')}"; + static m1(time) => + "${Intl.plural(time, zero: 'Atualizado há ${time} minutos', one: 'Atualizado há ${time} minuto', other: 'Atualizado há ${time} minutos')}"; - static m2(title) => "${Intl.select(title, {'horario': 'Horário', 'exames': 'Exames', 'area': 'Área Pessoal', 'cadeiras': 'Cadeiras', 'autocarros': 'Autocarros', 'locais': 'Locais', 'restaurantes': 'Restaurantes', 'calendario': 'Calendário', 'biblioteca': 'Biblioteca', 'percurso_academico': 'Percurso Académico', 'transportes': 'Transportes', 'faculdade': 'Faculdade', 'other': 'Outros', })}"; + static m2(number) => "+${number} mais"; + + static m3(title) => "${Intl.select(title, { + 'horario': 'Horário', + 'exames': 'Exames', + 'area': 'Área Pessoal', + 'cadeiras': 'Cadeiras', + 'autocarros': 'Autocarros', + 'locais': 'Locais', + 'restaurantes': 'Restaurantes', + 'calendario': 'Calendário', + 'biblioteca': 'Biblioteca', + 'percurso_academico': 'Percurso Académico', + 'transportes': 'Transportes', + 'faculdade': 'Faculdade', + 'other': 'Outros', + })}"; final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "about" : MessageLookupByLibrary.simpleMessage("Sobre nós"), - "academic_services" : MessageLookupByLibrary.simpleMessage("Serviços académicos"), - "account_card_title" : MessageLookupByLibrary.simpleMessage("Conta Corrente"), - "add" : MessageLookupByLibrary.simpleMessage("Adicionar"), - "add_quota" : MessageLookupByLibrary.simpleMessage("Adicionar quota"), - "add_widget" : MessageLookupByLibrary.simpleMessage("Adicionar widget"), - "agree_terms" : MessageLookupByLibrary.simpleMessage("Ao entrares confirmas que concordas com estes Termos e Condições"), - "all_widgets_added" : MessageLookupByLibrary.simpleMessage("Todos os widgets disponíveis já foram adicionados à tua área pessoal!"), - "at_least_one_college" : MessageLookupByLibrary.simpleMessage("Seleciona pelo menos uma faculdade"), - "available_amount" : MessageLookupByLibrary.simpleMessage("Valor disponível"), - "average" : MessageLookupByLibrary.simpleMessage("Média: "), - "balance" : MessageLookupByLibrary.simpleMessage("Saldo:"), - "banner_info" : MessageLookupByLibrary.simpleMessage("Agora recolhemos estatísticas de uso anónimas para melhorar a tua experiência. Podes alterá-lo nas definições."), - "bibliography" : MessageLookupByLibrary.simpleMessage("Bibliografia"), - "bs_description" : MessageLookupByLibrary.simpleMessage("Encontraste algum bug na aplicação?\nTens alguma sugestão para a app?\nConta-nos para que possamos melhorar!"), - "bug_description" : MessageLookupByLibrary.simpleMessage("Bug encontrado, como o reproduzir, etc"), - "bus_error" : MessageLookupByLibrary.simpleMessage("Não foi possível obter informação"), - "bus_information" : MessageLookupByLibrary.simpleMessage("Seleciona os autocarros dos quais queres informação:"), - "buses_personalize" : MessageLookupByLibrary.simpleMessage("Configura aqui os teus autocarros"), - "buses_text" : MessageLookupByLibrary.simpleMessage("Os autocarros favoritos serão apresentados no widget \'Autocarros\' dos favoritos. Os restantes serão apresentados apenas na página."), - "cancel" : MessageLookupByLibrary.simpleMessage("Cancelar"), - "change" : MessageLookupByLibrary.simpleMessage("Alterar"), - "change_prompt" : MessageLookupByLibrary.simpleMessage("Deseja alterar a palavra-passe?"), - "check_internet" : MessageLookupByLibrary.simpleMessage("Verifica a tua ligação à internet"), - "class_registration" : MessageLookupByLibrary.simpleMessage("Inscrição de Turmas"), - "collect_usage_stats" : MessageLookupByLibrary.simpleMessage("Partilhar estatísticas de uso"), - "college" : MessageLookupByLibrary.simpleMessage("Faculdade: "), - "college_select" : MessageLookupByLibrary.simpleMessage("seleciona a(s) tua(s) faculdade(s)"), - "conclude" : MessageLookupByLibrary.simpleMessage("Concluído"), - "configured_buses" : MessageLookupByLibrary.simpleMessage("Autocarros Configurados"), - "confirm" : MessageLookupByLibrary.simpleMessage("Confirmar"), - "confirm_logout" : MessageLookupByLibrary.simpleMessage("Tens a certeza de que queres terminar sessão? Os teus dados locais serão apagados e terás de iniciar sessão novamente."), - "consent" : MessageLookupByLibrary.simpleMessage("Consinto que esta informação seja revista pelo NIAEFEUP, podendo ser eliminada a meu pedido."), - "contact" : MessageLookupByLibrary.simpleMessage("Contacto (opcional)"), - "copy_center" : MessageLookupByLibrary.simpleMessage("Centro de cópias"), - "copy_center_building" : MessageLookupByLibrary.simpleMessage("Piso -1 do edifício B | Edifício da AEFEUP"), - "course_class" : MessageLookupByLibrary.simpleMessage("Turmas"), - "course_info" : MessageLookupByLibrary.simpleMessage("Ficha"), - "current_state" : MessageLookupByLibrary.simpleMessage("Estado atual: "), - "current_year" : MessageLookupByLibrary.simpleMessage("Ano curricular atual: "), - "decrement" : MessageLookupByLibrary.simpleMessage("Decrementar 1,00€"), - "description" : MessageLookupByLibrary.simpleMessage("Descrição"), - "desired_email" : MessageLookupByLibrary.simpleMessage("Email em que desejas ser contactado"), - "dona_bia" : MessageLookupByLibrary.simpleMessage("Papelaria D. Beatriz"), - "dona_bia_building" : MessageLookupByLibrary.simpleMessage("Piso -1 do edifício B (B-142)"), - "download_error" : MessageLookupByLibrary.simpleMessage("Erro ao descarregar o ficheiro"), - "ects" : MessageLookupByLibrary.simpleMessage("ECTS realizados: "), - "edit_off" : MessageLookupByLibrary.simpleMessage("Editar"), - "edit_on" : MessageLookupByLibrary.simpleMessage("Concluir edição"), - "empty_text" : MessageLookupByLibrary.simpleMessage("Por favor preenche este campo"), - "evaluation" : MessageLookupByLibrary.simpleMessage("Avaliação"), - "exams_filter" : MessageLookupByLibrary.simpleMessage("Definições Filtro de Exames"), - "exit_confirm" : MessageLookupByLibrary.simpleMessage("Tem a certeza de que pretende sair?"), - "expired_password" : MessageLookupByLibrary.simpleMessage("A tua palavra-passe expirou"), - "fail_to_authenticate" : MessageLookupByLibrary.simpleMessage("Falha ao autenticar"), - "failed_login" : MessageLookupByLibrary.simpleMessage("O login falhou"), - "fee_date" : MessageLookupByLibrary.simpleMessage("Data limite próxima prestação:"), - "fee_notification" : MessageLookupByLibrary.simpleMessage("Data limite de propina"), - "files" : MessageLookupByLibrary.simpleMessage("Ficheiros"), - "first_year_registration" : MessageLookupByLibrary.simpleMessage("Ano da primeira inscrição: "), - "floor" : MessageLookupByLibrary.simpleMessage("Piso"), - "floors" : MessageLookupByLibrary.simpleMessage("Pisos"), - "forgot_password" : MessageLookupByLibrary.simpleMessage("Esqueceu a palavra-passe?"), - "frequency" : MessageLookupByLibrary.simpleMessage("Obtenção de Frequência"), - "generate_reference" : MessageLookupByLibrary.simpleMessage("Gerar referência"), - "geral_registration" : MessageLookupByLibrary.simpleMessage("Inscrição Geral"), - "improvement_registration" : MessageLookupByLibrary.simpleMessage("Inscrição para Melhoria"), - "increment" : MessageLookupByLibrary.simpleMessage("Incrementar 1,00€"), - "internet_status_exception" : MessageLookupByLibrary.simpleMessage("Verifique sua conexão com a internet"), - "invalid_credentials" : MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), - "keep_login" : MessageLookupByLibrary.simpleMessage("Manter sessão"), - "language" : MessageLookupByLibrary.simpleMessage("Idioma"), - "last_refresh_time" : m0, - "last_timestamp" : m1, - "library_occupation" : MessageLookupByLibrary.simpleMessage("Ocupação da Biblioteca"), - "load_error" : MessageLookupByLibrary.simpleMessage("Erro ao carregar a informação"), - "loading_terms" : MessageLookupByLibrary.simpleMessage("Carregando os Termos e Condições..."), - "login" : MessageLookupByLibrary.simpleMessage("Entrar"), - "login_with_credentials" : MessageLookupByLibrary.simpleMessage("Iniciar sessão com credenciais"), - "logout" : MessageLookupByLibrary.simpleMessage("Terminar sessão"), - "menus" : MessageLookupByLibrary.simpleMessage("Ementas"), - "min_value_reference" : MessageLookupByLibrary.simpleMessage("Valor mínimo: 1,00 €"), - "multimedia_center" : MessageLookupByLibrary.simpleMessage("Centro de multimédia"), - "nav_title" : m2, - "news" : MessageLookupByLibrary.simpleMessage("Notícias"), - "no" : MessageLookupByLibrary.simpleMessage("Não"), - "no_app" : MessageLookupByLibrary.simpleMessage("Nenhuma aplicação encontrada para abrir o ficheiro"), - "no_bus" : MessageLookupByLibrary.simpleMessage("Não percas nenhum autocarro!"), - "no_bus_stops" : MessageLookupByLibrary.simpleMessage("Não existe nenhuma paragem configurada"), - "no_class" : MessageLookupByLibrary.simpleMessage("Não existem turmas para apresentar"), - "no_classes" : MessageLookupByLibrary.simpleMessage("Não existem aulas para apresentar"), - "no_classes_on" : MessageLookupByLibrary.simpleMessage("Não possui aulas à"), - "no_classes_on_weekend" : MessageLookupByLibrary.simpleMessage("Não possui aulas ao"), - "no_college" : MessageLookupByLibrary.simpleMessage("sem faculdade"), - "no_course_units" : MessageLookupByLibrary.simpleMessage("Sem cadeiras no período selecionado"), - "no_data" : MessageLookupByLibrary.simpleMessage("Não há dados a mostrar neste momento"), - "no_date" : MessageLookupByLibrary.simpleMessage("Sem data"), - "no_events" : MessageLookupByLibrary.simpleMessage("Nenhum evento encontrado"), - "no_exams" : MessageLookupByLibrary.simpleMessage("Não possui exames marcados"), - "no_exams_label" : MessageLookupByLibrary.simpleMessage("Parece que estás de férias!"), - "no_favorite_restaurants" : MessageLookupByLibrary.simpleMessage("Sem restaurantes favoritos"), - "no_files_found" : MessageLookupByLibrary.simpleMessage("Nenhum ficheiro encontrado"), - "no_info" : MessageLookupByLibrary.simpleMessage("Não existem informações para apresentar"), - "no_internet" : MessageLookupByLibrary.simpleMessage("Parece que estás offline"), - "no_library_info" : MessageLookupByLibrary.simpleMessage("Sem informação de ocupação"), - "no_link" : MessageLookupByLibrary.simpleMessage("Não conseguimos abrir o link"), - "no_menu_info" : MessageLookupByLibrary.simpleMessage("Não há informação disponível sobre refeições"), - "no_menus" : MessageLookupByLibrary.simpleMessage("Não há refeições disponíveis"), - "no_name_course" : MessageLookupByLibrary.simpleMessage("Curso sem nome"), - "no_places_info" : MessageLookupByLibrary.simpleMessage("Não há informação disponível sobre locais"), - "no_print_info" : MessageLookupByLibrary.simpleMessage("Sem informação de saldo"), - "no_references" : MessageLookupByLibrary.simpleMessage("Não existem referências a pagar"), - "no_results" : MessageLookupByLibrary.simpleMessage("Sem resultados"), - "no_selected_courses" : MessageLookupByLibrary.simpleMessage("Não existem cadeiras para apresentar"), - "no_selected_exams" : MessageLookupByLibrary.simpleMessage("Não existem exames para apresentar"), - "no_trips" : MessageLookupByLibrary.simpleMessage("Não há viagens planeadas de momento"), - "notifications" : MessageLookupByLibrary.simpleMessage("Notificações"), - "occurrence_type" : MessageLookupByLibrary.simpleMessage("Tipo de ocorrência"), - "of_month" : MessageLookupByLibrary.simpleMessage("de"), - "open_error" : MessageLookupByLibrary.simpleMessage("Erro ao abrir o ficheiro"), - "other_links" : MessageLookupByLibrary.simpleMessage("Outros links"), - "pass_change_request" : MessageLookupByLibrary.simpleMessage("Por razões de segurança, as palavras-passe têm de ser alteradas periodicamente."), - "password" : MessageLookupByLibrary.simpleMessage("palavra-passe"), - "pendent_references" : MessageLookupByLibrary.simpleMessage("Referências pendentes"), - "permission_denied" : MessageLookupByLibrary.simpleMessage("Sem permissão"), - "personal_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento presencial"), - "press_again" : MessageLookupByLibrary.simpleMessage("Pressione novamente para sair"), - "print" : MessageLookupByLibrary.simpleMessage("Impressão"), - "prints" : MessageLookupByLibrary.simpleMessage("Impressões"), - "problem_id" : MessageLookupByLibrary.simpleMessage("Breve identificação do problema"), - "program" : MessageLookupByLibrary.simpleMessage("Programa"), - "reference_sigarra_help" : MessageLookupByLibrary.simpleMessage("Os dados da referência gerada aparecerão no Sigarra, conta corrente. Perfil > Conta Corrente"), - "reference_success" : MessageLookupByLibrary.simpleMessage("Referência criada com sucesso!"), - "remove" : MessageLookupByLibrary.simpleMessage("Remover"), - "report_error" : MessageLookupByLibrary.simpleMessage("Reportar erro"), - "report_error_suggestion" : MessageLookupByLibrary.simpleMessage("Reportar erro/sugestão"), - "restaurant_main_page" : MessageLookupByLibrary.simpleMessage("Queres ver os teus restaurantes favoritos na página principal?"), - "room" : MessageLookupByLibrary.simpleMessage("Sala"), - "school_calendar" : MessageLookupByLibrary.simpleMessage("Calendário Escolar"), - "search" : MessageLookupByLibrary.simpleMessage("Pesquisar"), - "semester" : MessageLookupByLibrary.simpleMessage("Semestre"), - "send" : MessageLookupByLibrary.simpleMessage("Enviar"), - "sent_error" : MessageLookupByLibrary.simpleMessage("Ocorreu um erro no envio"), - "settings" : MessageLookupByLibrary.simpleMessage("Definições"), - "some_error" : MessageLookupByLibrary.simpleMessage("Algum erro!"), - "stcp_stops" : MessageLookupByLibrary.simpleMessage("STCP - Próximas Viagens"), - "student_number" : MessageLookupByLibrary.simpleMessage("número de estudante"), - "success" : MessageLookupByLibrary.simpleMessage("Enviado com sucesso"), - "successful_open" : MessageLookupByLibrary.simpleMessage("Ficheiro aberto com sucesso"), - "tele_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento telefónico"), - "tele_personal_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento presencial e telefónico"), - "telephone" : MessageLookupByLibrary.simpleMessage("Telefone"), - "terms" : MessageLookupByLibrary.simpleMessage("Termos e Condições"), - "theme" : MessageLookupByLibrary.simpleMessage("Tema"), - "title" : MessageLookupByLibrary.simpleMessage("Título"), - "try_again" : MessageLookupByLibrary.simpleMessage("Tentar de novo"), - "try_different_login" : MessageLookupByLibrary.simpleMessage("Problemas a iniciar sessão? Experimenta o login alternativo"), - "uc_info" : MessageLookupByLibrary.simpleMessage("Abrir página da UC"), - "unavailable" : MessageLookupByLibrary.simpleMessage("Indisponível"), - "valid_email" : MessageLookupByLibrary.simpleMessage("Por favor insere um email válido"), - "widget_prompt" : MessageLookupByLibrary.simpleMessage("Escolhe um widget para adicionares à tua área pessoal:"), - "wrong_credentials_exception" : MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), - "year" : MessageLookupByLibrary.simpleMessage("Ano"), - "yes" : MessageLookupByLibrary.simpleMessage("Sim") - }; + static _notInlinedMessages(_) => { + "about": MessageLookupByLibrary.simpleMessage("Sobre nós"), + "academic_services": + MessageLookupByLibrary.simpleMessage("Serviços académicos"), + "account_card_title": + MessageLookupByLibrary.simpleMessage("Conta Corrente"), + "add": MessageLookupByLibrary.simpleMessage("Adicionar"), + "add_quota": MessageLookupByLibrary.simpleMessage("Adicionar quota"), + "add_widget": MessageLookupByLibrary.simpleMessage("Adicionar widget"), + "agree_terms": MessageLookupByLibrary.simpleMessage( + "Ao entrares confirmas que concordas com estes Termos e Condições"), + "all_widgets_added": MessageLookupByLibrary.simpleMessage( + "Todos os widgets disponíveis já foram adicionados à tua área pessoal!"), + "assessments": MessageLookupByLibrary.simpleMessage("Avaliações"), + "at_least_one_college": MessageLookupByLibrary.simpleMessage( + "Seleciona pelo menos uma faculdade"), + "available_amount": + MessageLookupByLibrary.simpleMessage("Valor disponível"), + "average": MessageLookupByLibrary.simpleMessage("Média: "), + "balance": MessageLookupByLibrary.simpleMessage("Saldo:"), + "banner_info": MessageLookupByLibrary.simpleMessage( + "Agora recolhemos estatísticas de uso anónimas para melhorar a tua experiência. Podes alterá-lo nas definições."), + "bibliography": MessageLookupByLibrary.simpleMessage("Bibliografia"), + "bs_description": MessageLookupByLibrary.simpleMessage( + "Encontraste algum bug na aplicação?\nTens alguma sugestão para a app?\nConta-nos para que possamos melhorar!"), + "bug_description": MessageLookupByLibrary.simpleMessage( + "Bug encontrado, como o reproduzir, etc"), + "bus_error": MessageLookupByLibrary.simpleMessage( + "Não foi possível obter informação"), + "bus_information": MessageLookupByLibrary.simpleMessage( + "Seleciona os autocarros dos quais queres informação:"), + "buses_personalize": MessageLookupByLibrary.simpleMessage( + "Configura aqui os teus autocarros"), + "buses_text": MessageLookupByLibrary.simpleMessage( + "Os autocarros favoritos serão apresentados no widget \'Autocarros\' dos favoritos. Os restantes serão apresentados apenas na página."), + "cancel": MessageLookupByLibrary.simpleMessage("Cancelar"), + "change": MessageLookupByLibrary.simpleMessage("Alterar"), + "change_prompt": MessageLookupByLibrary.simpleMessage( + "Deseja alterar a palavra-passe?"), + "check_internet": MessageLookupByLibrary.simpleMessage( + "Verifica a tua ligação à internet"), + "class_registration": + MessageLookupByLibrary.simpleMessage("Inscrição de Turmas"), + "collect_usage_stats": MessageLookupByLibrary.simpleMessage( + "Partilhar estatísticas de uso"), + "college": MessageLookupByLibrary.simpleMessage("Faculdade: "), + "college_select": MessageLookupByLibrary.simpleMessage( + "seleciona a(s) tua(s) faculdade(s)"), + "conclude": MessageLookupByLibrary.simpleMessage("Concluído"), + "configured_buses": + MessageLookupByLibrary.simpleMessage("Autocarros Configurados"), + "confirm": MessageLookupByLibrary.simpleMessage("Confirmar"), + "confirm_logout": MessageLookupByLibrary.simpleMessage( + "Tens a certeza de que queres terminar sessão? Os teus dados locais serão apagados e terás de iniciar sessão novamente."), + "consent": MessageLookupByLibrary.simpleMessage( + "Consinto que esta informação seja revista pelo NIAEFEUP, podendo ser eliminada a meu pedido."), + "contact": MessageLookupByLibrary.simpleMessage("Contacto (opcional)"), + "copy_center": MessageLookupByLibrary.simpleMessage("Centro de cópias"), + "copy_center_building": MessageLookupByLibrary.simpleMessage( + "Piso -1 do edifício B | Edifício da AEFEUP"), + "courseRegent": + MessageLookupByLibrary.simpleMessage("Regente da Cadeira"), + "course_class": MessageLookupByLibrary.simpleMessage("Turmas"), + "course_info": MessageLookupByLibrary.simpleMessage("Ficha"), + "current_state": MessageLookupByLibrary.simpleMessage("Estado atual: "), + "current_year": + MessageLookupByLibrary.simpleMessage("Ano curricular atual: "), + "decrement": MessageLookupByLibrary.simpleMessage("Decrementar 1,00€"), + "description": MessageLookupByLibrary.simpleMessage("Descrição"), + "desired_email": MessageLookupByLibrary.simpleMessage( + "Email em que desejas ser contactado"), + "dona_bia": + MessageLookupByLibrary.simpleMessage("Papelaria D. Beatriz"), + "dona_bia_building": MessageLookupByLibrary.simpleMessage( + "Piso -1 do edifício B (B-142)"), + "download_error": MessageLookupByLibrary.simpleMessage( + "Erro ao descarregar o ficheiro"), + "ects": MessageLookupByLibrary.simpleMessage("ECTS realizados: "), + "edit_off": MessageLookupByLibrary.simpleMessage("Editar"), + "edit_on": MessageLookupByLibrary.simpleMessage("Concluir edição"), + "empty_text": MessageLookupByLibrary.simpleMessage( + "Por favor preenche este campo"), + "evaluation": MessageLookupByLibrary.simpleMessage("Avaliação"), + "exams_filter": + MessageLookupByLibrary.simpleMessage("Definições Filtro de Exames"), + "exit_confirm": MessageLookupByLibrary.simpleMessage( + "Tem a certeza de que pretende sair?"), + "expired_password": + MessageLookupByLibrary.simpleMessage("A tua palavra-passe expirou"), + "fail_to_authenticate": + MessageLookupByLibrary.simpleMessage("Falha ao autenticar"), + "failed_login": MessageLookupByLibrary.simpleMessage("O login falhou"), + "fee_date": MessageLookupByLibrary.simpleMessage( + "Data limite próxima prestação:"), + "fee_notification": + MessageLookupByLibrary.simpleMessage("Data limite de propina"), + "files": MessageLookupByLibrary.simpleMessage("Ficheiros"), + "first_year_registration": + MessageLookupByLibrary.simpleMessage("Ano da primeira inscrição: "), + "floor": MessageLookupByLibrary.simpleMessage("Piso"), + "floors": MessageLookupByLibrary.simpleMessage("Pisos"), + "forgot_password": + MessageLookupByLibrary.simpleMessage("Esqueceu a palavra-passe?"), + "frequency": + MessageLookupByLibrary.simpleMessage("Obtenção de Frequência"), + "generate_reference": + MessageLookupByLibrary.simpleMessage("Gerar referência"), + "geral_registration": + MessageLookupByLibrary.simpleMessage("Inscrição Geral"), + "improvement_registration": + MessageLookupByLibrary.simpleMessage("Inscrição para Melhoria"), + "increment": MessageLookupByLibrary.simpleMessage("Incrementar 1,00€"), + "instructor": MessageLookupByLibrary.simpleMessage("Docente"), + "instructors": MessageLookupByLibrary.simpleMessage("Docentes"), + "internet_status_exception": MessageLookupByLibrary.simpleMessage( + "Verifique sua conexão com a internet"), + "invalid_credentials": + MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), + "keep_login": MessageLookupByLibrary.simpleMessage("Manter sessão"), + "language": MessageLookupByLibrary.simpleMessage("Idioma"), + "last_refresh_time": m0, + "last_timestamp": m1, + "library_occupation": + MessageLookupByLibrary.simpleMessage("Ocupação da Biblioteca"), + "load_error": MessageLookupByLibrary.simpleMessage( + "Erro ao carregar a informação"), + "loading_terms": MessageLookupByLibrary.simpleMessage( + "Carregando os Termos e Condições..."), + "login": MessageLookupByLibrary.simpleMessage("Entrar"), + "login_with_credentials": MessageLookupByLibrary.simpleMessage( + "Iniciar sessão com credenciais"), + "logout": MessageLookupByLibrary.simpleMessage("Terminar sessão"), + "menus": MessageLookupByLibrary.simpleMessage("Ementas"), + "min_value_reference": + MessageLookupByLibrary.simpleMessage("Valor mínimo: 1,00 €"), + "moreInstructors": m2, + "multimedia_center": + MessageLookupByLibrary.simpleMessage("Centro de multimédia"), + "nav_title": m3, + "news": MessageLookupByLibrary.simpleMessage("Notícias"), + "no": MessageLookupByLibrary.simpleMessage("Não"), + "noExamsScheduled": + MessageLookupByLibrary.simpleMessage("Não há exames agendados"), + "no_app": MessageLookupByLibrary.simpleMessage( + "Nenhuma aplicação encontrada para abrir o ficheiro"), + "no_bus": MessageLookupByLibrary.simpleMessage( + "Não percas nenhum autocarro!"), + "no_bus_stops": MessageLookupByLibrary.simpleMessage( + "Não existe nenhuma paragem configurada"), + "no_class": MessageLookupByLibrary.simpleMessage( + "Não existem turmas para apresentar"), + "no_classes": MessageLookupByLibrary.simpleMessage( + "Não existem aulas para apresentar"), + "no_classes_on": + MessageLookupByLibrary.simpleMessage("Não possui aulas à"), + "no_classes_on_weekend": + MessageLookupByLibrary.simpleMessage("Não possui aulas ao"), + "no_college": MessageLookupByLibrary.simpleMessage("sem faculdade"), + "no_course_units": MessageLookupByLibrary.simpleMessage( + "Sem cadeiras no período selecionado"), + "no_data": MessageLookupByLibrary.simpleMessage( + "Não há dados a mostrar neste momento"), + "no_date": MessageLookupByLibrary.simpleMessage("Sem data"), + "no_events": + MessageLookupByLibrary.simpleMessage("Nenhum evento encontrado"), + "no_exams": + MessageLookupByLibrary.simpleMessage("Não possui exames marcados"), + "no_exams_label": + MessageLookupByLibrary.simpleMessage("Parece que estás de férias!"), + "no_favorite_restaurants": + MessageLookupByLibrary.simpleMessage("Sem restaurantes favoritos"), + "no_files_found": + MessageLookupByLibrary.simpleMessage("Nenhum ficheiro encontrado"), + "no_info": MessageLookupByLibrary.simpleMessage( + "Não existem informações para apresentar"), + "no_internet": + MessageLookupByLibrary.simpleMessage("Parece que estás offline"), + "no_library_info": + MessageLookupByLibrary.simpleMessage("Sem informação de ocupação"), + "no_link": MessageLookupByLibrary.simpleMessage( + "Não conseguimos abrir o link"), + "no_menu_info": MessageLookupByLibrary.simpleMessage( + "Não há informação disponível sobre refeições"), + "no_menus": MessageLookupByLibrary.simpleMessage( + "Não há refeições disponíveis"), + "no_name_course": + MessageLookupByLibrary.simpleMessage("Curso sem nome"), + "no_places_info": MessageLookupByLibrary.simpleMessage( + "Não há informação disponível sobre locais"), + "no_print_info": + MessageLookupByLibrary.simpleMessage("Sem informação de saldo"), + "no_references": MessageLookupByLibrary.simpleMessage( + "Não existem referências a pagar"), + "no_results": MessageLookupByLibrary.simpleMessage("Sem resultados"), + "no_selected_courses": MessageLookupByLibrary.simpleMessage( + "Não existem cadeiras para apresentar"), + "no_selected_exams": MessageLookupByLibrary.simpleMessage( + "Não existem exames para apresentar"), + "no_trips": MessageLookupByLibrary.simpleMessage( + "Não há viagens planeadas de momento"), + "notifications": MessageLookupByLibrary.simpleMessage("Notificações"), + "occurrence_type": + MessageLookupByLibrary.simpleMessage("Tipo de ocorrência"), + "of_month": MessageLookupByLibrary.simpleMessage("de"), + "open_error": + MessageLookupByLibrary.simpleMessage("Erro ao abrir o ficheiro"), + "other_links": MessageLookupByLibrary.simpleMessage("Outros links"), + "pass_change_request": MessageLookupByLibrary.simpleMessage( + "Por razões de segurança, as palavras-passe têm de ser alteradas periodicamente."), + "password": MessageLookupByLibrary.simpleMessage("palavra-passe"), + "pendent_references": + MessageLookupByLibrary.simpleMessage("Referências pendentes"), + "permission_denied": + MessageLookupByLibrary.simpleMessage("Sem permissão"), + "personal_assistance": + MessageLookupByLibrary.simpleMessage("Atendimento presencial"), + "press_again": MessageLookupByLibrary.simpleMessage( + "Pressione novamente para sair"), + "print": MessageLookupByLibrary.simpleMessage("Impressão"), + "prints": MessageLookupByLibrary.simpleMessage("Impressões"), + "problem_id": MessageLookupByLibrary.simpleMessage( + "Breve identificação do problema"), + "program": MessageLookupByLibrary.simpleMessage("Programa"), + "reference_sigarra_help": MessageLookupByLibrary.simpleMessage( + "Os dados da referência gerada aparecerão no Sigarra, conta corrente. Perfil > Conta Corrente"), + "reference_success": MessageLookupByLibrary.simpleMessage( + "Referência criada com sucesso!"), + "remove": MessageLookupByLibrary.simpleMessage("Remover"), + "report_error": MessageLookupByLibrary.simpleMessage("Reportar erro"), + "report_error_suggestion": + MessageLookupByLibrary.simpleMessage("Reportar erro/sugestão"), + "restaurant_main_page": MessageLookupByLibrary.simpleMessage( + "Queres ver os teus restaurantes favoritos na página principal?"), + "room": MessageLookupByLibrary.simpleMessage("Sala"), + "school_calendar": + MessageLookupByLibrary.simpleMessage("Calendário Escolar"), + "search": MessageLookupByLibrary.simpleMessage("Pesquisar"), + "semester": MessageLookupByLibrary.simpleMessage("Semestre"), + "send": MessageLookupByLibrary.simpleMessage("Enviar"), + "sent_error": + MessageLookupByLibrary.simpleMessage("Ocorreu um erro no envio"), + "settings": MessageLookupByLibrary.simpleMessage("Definições"), + "some_error": MessageLookupByLibrary.simpleMessage("Algum erro!"), + "stcp_stops": + MessageLookupByLibrary.simpleMessage("STCP - Próximas Viagens"), + "student_number": + MessageLookupByLibrary.simpleMessage("número de estudante"), + "success": MessageLookupByLibrary.simpleMessage("Enviado com sucesso"), + "successful_open": + MessageLookupByLibrary.simpleMessage("Ficheiro aberto com sucesso"), + "tele_assistance": + MessageLookupByLibrary.simpleMessage("Atendimento telefónico"), + "tele_personal_assistance": MessageLookupByLibrary.simpleMessage( + "Atendimento presencial e telefónico"), + "telephone": MessageLookupByLibrary.simpleMessage("Telefone"), + "terms": MessageLookupByLibrary.simpleMessage("Termos e Condições"), + "theme": MessageLookupByLibrary.simpleMessage("Tema"), + "title": MessageLookupByLibrary.simpleMessage("Título"), + "try_again": MessageLookupByLibrary.simpleMessage("Tentar de novo"), + "try_different_login": MessageLookupByLibrary.simpleMessage( + "Problemas a iniciar sessão? Experimenta o login alternativo"), + "uc_info": MessageLookupByLibrary.simpleMessage("Abrir página da UC"), + "unavailable": MessageLookupByLibrary.simpleMessage("Indisponível"), + "valid_email": MessageLookupByLibrary.simpleMessage( + "Por favor insere um email válido"), + "widget_prompt": MessageLookupByLibrary.simpleMessage( + "Escolhe um widget para adicionares à tua área pessoal:"), + "wrong_credentials_exception": + MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), + "year": MessageLookupByLibrary.simpleMessage("Ano"), + "yes": MessageLookupByLibrary.simpleMessage("Sim") + }; } diff --git a/packages/uni_app/lib/generated/l10n.dart b/packages/uni_app/lib/generated/l10n.dart index e0578285c..af9b40e20 100644 --- a/packages/uni_app/lib/generated/l10n.dart +++ b/packages/uni_app/lib/generated/l10n.dart @@ -18,28 +18,31 @@ class S { static S? _current; static S get current { - assert(_current != null, 'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.'); + assert(_current != null, + 'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.'); return _current!; } - static const AppLocalizationDelegate delegate = - AppLocalizationDelegate(); + static const AppLocalizationDelegate delegate = AppLocalizationDelegate(); static Future load(Locale locale) { - final name = (locale.countryCode?.isEmpty ?? false) ? locale.languageCode : locale.toString(); - final localeName = Intl.canonicalizedLocale(name); + final name = (locale.countryCode?.isEmpty ?? false) + ? locale.languageCode + : locale.toString(); + final localeName = Intl.canonicalizedLocale(name); return initializeMessages(localeName).then((_) { Intl.defaultLocale = localeName; final instance = S(); S._current = instance; - + return instance; }); - } + } static S of(BuildContext context) { final instance = S.maybeOf(context); - assert(instance != null, 'No instance of S present in the widget tree. Did you add S.delegate in localizationsDelegates?'); + assert(instance != null, + 'No instance of S present in the widget tree. Did you add S.delegate in localizationsDelegates?'); return instance!; } @@ -1704,6 +1707,66 @@ class S { args: [], ); } + + /// `Instructors` + String get instructors { + return Intl.message( + 'Instructors', + name: 'instructors', + desc: '', + args: [], + ); + } + + /// `Assessments` + String get assessments { + return Intl.message( + 'Assessments', + name: 'assessments', + desc: '', + args: [], + ); + } + + /// `No exams scheduled` + String get noExamsScheduled { + return Intl.message( + 'No exams scheduled', + name: 'noExamsScheduled', + desc: '', + args: [], + ); + } + + /// `{number} more` + String moreInstructors(Object number) { + return Intl.message( + '$number more', + name: 'moreInstructors', + desc: '', + args: [number], + ); + } + + /// `Course Regent` + String get courseRegent { + return Intl.message( + 'Course Regent', + name: 'courseRegent', + desc: '', + args: [], + ); + } + + /// `Instructor` + String get instructor { + return Intl.message( + 'Instructor', + name: 'instructor', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { @@ -1731,4 +1794,4 @@ class AppLocalizationDelegate extends LocalizationsDelegate { } return false; } -} \ No newline at end of file +} diff --git a/packages/uni_app/lib/l10n/intl_en.arb b/packages/uni_app/lib/l10n/intl_en.arb index 47ffafa46..862a9416b 100644 --- a/packages/uni_app/lib/l10n/intl_en.arb +++ b/packages/uni_app/lib/l10n/intl_en.arb @@ -335,5 +335,23 @@ "wrong_credentials_exception": "Invalid credentials", "@wrong_credentials_exception": {}, "internet_status_exception": "Check your internet connection", - "@internet_status_exception": {} + "@internet_status_exception": {}, + "instructors": "Instructors", + "@instructors": {}, + "assessments": "Assessments", + "@assessments": {}, + "noExamsScheduled": "No exams scheduled", + "@noExamsScheduled": {}, + "bibliography": "Bibliography", + "@bibliography": {}, + "moreInstructors": "{number} more", + "@moreInstructors": { + "placeholders": { + "number": {} + } + }, + "courseRegent": "Course Regent", + "@courseRegent": {}, + "instructor": "Instructor", + "@instructor": {} } \ No newline at end of file diff --git a/packages/uni_app/lib/l10n/intl_pt_PT.arb b/packages/uni_app/lib/l10n/intl_pt_PT.arb index a149d9e6a..f4a2b5b05 100644 --- a/packages/uni_app/lib/l10n/intl_pt_PT.arb +++ b/packages/uni_app/lib/l10n/intl_pt_PT.arb @@ -335,5 +335,23 @@ "wrong_credentials_exception": "Credenciais inválidas", "@wrong_credentials_exception": {}, "internet_status_exception": "Verifique sua conexão com a internet", - "@internet_status_exception": {} + "@internet_status_exception": {}, + "instructors": "Docentes", + "@instructors": {}, + "assessments": "Avaliações", + "@assessments": {}, + "noExamsScheduled": "Não há exames agendados", + "@noExamsScheduled": {}, + "bibliography": "Bibliografia", + "@bibliography": {}, + "moreInstructors": "+{number} mais", + "@moreInstructors": { + "placeholders": { + "number": {} + } + }, + "courseRegent": "Regente da Cadeira", + "@courseRegent": {}, + "instructor": "Docente", + "@instructor": {} } \ No newline at end of file diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index cf31e66a6..09bb4e218 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -1,4 +1,3 @@ -import 'dart:ffi'; import 'dart:io'; import 'package:flutter/material.dart'; @@ -15,7 +14,6 @@ import 'package:uni/view/common_widgets/generic_animated_expandable.dart'; import 'package:uni/view/common_widgets/generic_expandable.dart'; import 'package:uni/view/course_unit_info/widgets/modal_professor_info.dart'; import 'package:uni_ui/cards/exam_card.dart'; -import 'package:uni_ui/theme.dart'; class CourseUnitSheetView extends StatelessWidget { const CourseUnitSheetView(this.courseUnitSheet, this.exams, {super.key}); @@ -30,9 +28,9 @@ class CourseUnitSheetView extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text( - 'Instructors', - style: TextStyle(fontSize: 20), + Text( + S.of(context).instructors, + style: const TextStyle(fontSize: 20), ), if (courseUnitSheet.professors.length <= 4) _buildInstructorsRow(context, courseUnitSheet.professors) @@ -49,14 +47,14 @@ class CourseUnitSheetView extends StatelessWidget { opacity: 0.25, child: Divider(color: Colors.grey), ), - const Text( - 'Assessments', - style: TextStyle(fontSize: 20), + Text( + S.of(context).assessments, + style: const TextStyle(fontSize: 20), ), if (exams.isEmpty) - const Padding( - padding: EdgeInsets.only(top: 8.0), - child: Text('No exams scheduled'), + Padding( + padding: const EdgeInsets.only(top: 8), + child: Text(S.of(context).noExamsScheduled), ) else SizedBox( @@ -95,22 +93,24 @@ class CourseUnitSheetView extends StatelessWidget { } Widget _buildLimitedInstructorsRow( - BuildContext context, List instructors) { + BuildContext context, + List instructors, + ) { final firstThree = instructors.take(3).toList(); final remaining = instructors.skip(3).toList(); return Wrap( - spacing: 8.0, - runSpacing: 4.0, + spacing: 8, + runSpacing: 4, children: [ ...firstThree .map((instructor) => _buildInstructorWidget(context, instructor)), if (remaining.isNotEmpty) Container( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: const Color.fromRGBO(255, 245, 243, 1), - borderRadius: BorderRadius.circular(8.0), + borderRadius: BorderRadius.circular(8), ), child: Row( mainAxisSize: MainAxisSize.min, @@ -131,9 +131,11 @@ class CourseUnitSheetView extends StatelessWidget { ), const SizedBox(width: 8), Text( - '+${remaining.length} more', + S.of(context).moreInstructors(remaining.length), style: const TextStyle( - fontSize: 14, fontWeight: FontWeight.w500), + fontSize: 14, + fontWeight: FontWeight.w500, + ), ), ], ), @@ -143,10 +145,12 @@ class CourseUnitSheetView extends StatelessWidget { } Widget _buildInstructorsRow( - BuildContext context, List instructors) { + BuildContext context, + List instructors, + ) { return Wrap( - spacing: 8.0, - runSpacing: 4.0, + spacing: 8, + runSpacing: 4, children: instructors .map((instructor) => _buildInstructorWidget(context, instructor)) .toList(), @@ -162,10 +166,10 @@ class CourseUnitSheetView extends StatelessWidget { ); }, child: Container( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: const Color.fromRGBO(255, 245, 243, 1), - borderRadius: BorderRadius.circular(8.0), + borderRadius: BorderRadius.circular(8), ), child: Row( mainAxisSize: MainAxisSize.min, @@ -188,8 +192,10 @@ class CourseUnitSheetView extends StatelessWidget { ), ), Text( - instructor.isRegent ? 'Course Regent' : 'Instructor', - style: TextStyle(fontSize: 12, color: Colors.grey), + instructor.isRegent + ? S.of(context).courseRegent + : S.of(context).instructor, + style: const TextStyle(fontSize: 12, color: Colors.grey), ), ], ), From 6c98fc83cbf861128620dcacaf588734c3c360f9 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Tue, 7 Jan 2025 21:53:07 +0000 Subject: [PATCH 29/32] Corrected some merge conflicts --- .../course_units_info_fetcher.dart | 3 +- .../lib/generated/intl/messages_all.dart | 9 +- .../lib/generated/intl/messages_en.dart | 475 +++++++---------- .../lib/generated/intl/messages_pt_PT.dart | 477 +++++++----------- .../lib/view/academic_path/academic_path.dart | 5 +- .../common_widgets/generic_expandable.dart | 2 +- .../lib/view/common_widgets/page_title.dart | 4 +- .../course_unit_info/course_unit_info.dart | 2 - .../widgets/course_unit_sheet.dart | 22 +- packages/uni_ui/lib/cards/exam_card.dart | 7 - 10 files changed, 383 insertions(+), 623 deletions(-) diff --git a/packages/uni_app/lib/controller/fetchers/course_units_fetcher/course_units_info_fetcher.dart b/packages/uni_app/lib/controller/fetchers/course_units_fetcher/course_units_info_fetcher.dart index be6667c9f..34f546c76 100644 --- a/packages/uni_app/lib/controller/fetchers/course_units_fetcher/course_units_info_fetcher.dart +++ b/packages/uni_app/lib/controller/fetchers/course_units_fetcher/course_units_info_fetcher.dart @@ -42,13 +42,14 @@ class CourseUnitsInfoFetcher implements SessionDependantFetcher { ? parseSheet(bestResponse) : Sheet( professors: [], - regents: [], content: '', evaluation: '', + frequency: '', books: [], ); } + Future> fetchCourseUnitFiles( Session session, int occurId, diff --git a/packages/uni_app/lib/generated/intl/messages_all.dart b/packages/uni_app/lib/generated/intl/messages_all.dart index 6b3ebeae5..fb1bd2689 100644 --- a/packages/uni_app/lib/generated/intl/messages_all.dart +++ b/packages/uni_app/lib/generated/intl/messages_all.dart @@ -38,8 +38,9 @@ MessageLookupByLibrary? _findExact(String localeName) { /// User programs should call this before using [localeName] for messages. Future initializeMessages(String localeName) async { var availableLocale = Intl.verifiedLocale( - localeName, (locale) => _deferredLibraries[locale] != null, - onFailure: (_) => null); + localeName, + (locale) => _deferredLibraries[locale] != null, + onFailure: (_) => null); if (availableLocale == null) { return new Future.value(false); } @@ -59,8 +60,8 @@ bool _messagesExistFor(String locale) { } MessageLookupByLibrary? _findGeneratedMessagesFor(String locale) { - var actualLocale = - Intl.verifiedLocale(locale, _messagesExistFor, onFailure: (_) => null); + var actualLocale = Intl.verifiedLocale(locale, _messagesExistFor, + onFailure: (_) => null); if (actualLocale == null) return null; return _findExact(actualLocale); } diff --git a/packages/uni_app/lib/generated/intl/messages_en.dart b/packages/uni_app/lib/generated/intl/messages_en.dart index 3d7c6916b..f45a77917 100644 --- a/packages/uni_app/lib/generated/intl/messages_en.dart +++ b/packages/uni_app/lib/generated/intl/messages_en.dart @@ -21,303 +21,190 @@ class MessageLookup extends MessageLookupByLibrary { static m0(time) => "last refresh at ${time}"; - static m1(time) => - "${Intl.plural(time, zero: 'Refreshed ${time} minutes ago', one: 'Refreshed ${time} minute ago', other: 'Refreshed ${time} minutes ago')}"; + static m1(time) => "${Intl.plural(time, zero: 'Refreshed ${time} minutes ago', one: 'Refreshed ${time} minute ago', other: 'Refreshed ${time} minutes ago')}"; static m2(number) => "${number} more"; - static m3(title) => "${Intl.select(title, { - 'horario': 'Schedule', - 'exames': 'Exams', - 'area': 'Personal Area', - 'cadeiras': 'Course Units', - 'autocarros': 'Buses', - 'locais': 'Places', - 'restaurantes': 'Restaurants', - 'calendario': 'Calendar', - 'biblioteca': 'Library', - 'percurso_academico': 'Academic Path', - 'transportes': 'Transports', - 'faculdade': 'Faculty', - 'other': 'Other', - })}"; + static m3(title) => "${Intl.select(title, {'horario': 'Schedule', 'exames': 'Exams', 'area': 'Personal Area', 'cadeiras': 'Course Units', 'autocarros': 'Buses', 'locais': 'Places', 'restaurantes': 'Restaurants', 'calendario': 'Calendar', 'biblioteca': 'Library', 'percurso_academico': 'Academic Path', 'transportes': 'Transports', 'faculdade': 'Faculty', 'other': 'Other', })}"; final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "about": MessageLookupByLibrary.simpleMessage("About us"), - "academic_services": - MessageLookupByLibrary.simpleMessage("Academic services"), - "account_card_title": - MessageLookupByLibrary.simpleMessage("Checking account"), - "add": MessageLookupByLibrary.simpleMessage("Add"), - "add_quota": MessageLookupByLibrary.simpleMessage("Add quota"), - "add_widget": MessageLookupByLibrary.simpleMessage("Add widget"), - "agree_terms": MessageLookupByLibrary.simpleMessage( - "By entering you agree with these"), - "all_widgets_added": MessageLookupByLibrary.simpleMessage( - "All available widgets have already been added to your personal area!"), - "assessments": MessageLookupByLibrary.simpleMessage("Assessments"), - "at_least_one_college": - MessageLookupByLibrary.simpleMessage("Select at least one college"), - "available_amount": - MessageLookupByLibrary.simpleMessage("Available amount"), - "average": MessageLookupByLibrary.simpleMessage("Average: "), - "balance": MessageLookupByLibrary.simpleMessage("Balance:"), - "banner_info": MessageLookupByLibrary.simpleMessage( - "We do now collect anonymous usage statistics in order to improve your experience. You can change it in settings."), - "bibliography": MessageLookupByLibrary.simpleMessage("Bibliography"), - "breakfast": MessageLookupByLibrary.simpleMessage("Breakfast"), - "bs_description": MessageLookupByLibrary.simpleMessage( - "Did you find any bugs in the application?\nDo you have any suggestions for the app?\nTell us so we can improve!"), - "bug_description": MessageLookupByLibrary.simpleMessage( - "Bug found, how to reproduce it, etc."), - "bus_error": - MessageLookupByLibrary.simpleMessage("Unable to get information"), - "bus_information": MessageLookupByLibrary.simpleMessage( - "Select the buses you want information about:"), - "buses_personalize": - MessageLookupByLibrary.simpleMessage("Personalize your buses here"), - "buses_text": MessageLookupByLibrary.simpleMessage( - "Favorite buses will be displayed in the favorites \'Bus\' widget. The remaining ones will only be displayed on the page."), - "cancel": MessageLookupByLibrary.simpleMessage("Cancel"), - "change": MessageLookupByLibrary.simpleMessage("Change"), - "change_prompt": MessageLookupByLibrary.simpleMessage( - "Do you want to change the password?"), - "check_internet": MessageLookupByLibrary.simpleMessage( - "Check your internet connection"), - "class_registration": - MessageLookupByLibrary.simpleMessage("Class Registration"), - "collect_usage_stats": - MessageLookupByLibrary.simpleMessage("Collect usage statistics"), - "college": MessageLookupByLibrary.simpleMessage("College: "), - "college_select": - MessageLookupByLibrary.simpleMessage("select your college(s)"), - "conclude": MessageLookupByLibrary.simpleMessage("Done"), - "configured_buses": - MessageLookupByLibrary.simpleMessage("Configured Buses"), - "confirm": MessageLookupByLibrary.simpleMessage("Confirm"), - "confirm_logout": MessageLookupByLibrary.simpleMessage( - "Do you really want to log out? Your local data will be deleted and you will have to log in again."), - "consent": MessageLookupByLibrary.simpleMessage( - "I consent to this information being reviewed by NIAEFEUP and may be deleted at my request."), - "contact": MessageLookupByLibrary.simpleMessage("Contact (optional)"), - "copy_center": MessageLookupByLibrary.simpleMessage("Copy center"), - "copy_center_building": MessageLookupByLibrary.simpleMessage( - "Floor -1 of building B | AEFEUP building"), - "courseRegent": MessageLookupByLibrary.simpleMessage("Course Regent"), - "course_class": MessageLookupByLibrary.simpleMessage("Classes"), - "course_info": MessageLookupByLibrary.simpleMessage("Info"), - "courses": MessageLookupByLibrary.simpleMessage("Courses"), - "current_state": - MessageLookupByLibrary.simpleMessage("Current state: "), - "current_year": - MessageLookupByLibrary.simpleMessage("Current academic year: "), - "decrement": MessageLookupByLibrary.simpleMessage("Decrement 1,00€"), - "description": MessageLookupByLibrary.simpleMessage("Description"), - "desired_email": MessageLookupByLibrary.simpleMessage( - "Email where you want to be contacted"), - "dinner": MessageLookupByLibrary.simpleMessage("Dinner"), - "dona_bia": MessageLookupByLibrary.simpleMessage( - "D. Beatriz\'s stationery store"), - "dona_bia_building": MessageLookupByLibrary.simpleMessage( - "Floor -1 of building B (B-142)"), - "download_error": - MessageLookupByLibrary.simpleMessage("Error downloading the file"), - "ects": MessageLookupByLibrary.simpleMessage("ECTS performed: "), - "edit_off": MessageLookupByLibrary.simpleMessage("Edit"), - "edit_on": MessageLookupByLibrary.simpleMessage("Finish editing"), - "empty_text": - MessageLookupByLibrary.simpleMessage("Please fill in this field"), - "evaluation": MessageLookupByLibrary.simpleMessage("Evaluation"), - "exams": MessageLookupByLibrary.simpleMessage("Exams"), - "exams_filter": - MessageLookupByLibrary.simpleMessage("Exams Filter Settings"), - "exit_confirm": - MessageLookupByLibrary.simpleMessage("Do you really want to exit?"), - "expired_password": - MessageLookupByLibrary.simpleMessage("Your password has expired"), - "fail_to_authenticate": - MessageLookupByLibrary.simpleMessage("Failed to authenticate"), - "failed_login": MessageLookupByLibrary.simpleMessage("Login failed"), - "fee_date": - MessageLookupByLibrary.simpleMessage("Deadline for next fee:"), - "fee_notification": - MessageLookupByLibrary.simpleMessage("Fee deadline"), - "files": MessageLookupByLibrary.simpleMessage("Files"), - "first_year_registration": MessageLookupByLibrary.simpleMessage( - "Year of first registration: "), - "floor": MessageLookupByLibrary.simpleMessage("Floor"), - "floors": MessageLookupByLibrary.simpleMessage("Floors"), - "forgot_password": - MessageLookupByLibrary.simpleMessage("Forgot password?"), - "frequency": - MessageLookupByLibrary.simpleMessage("Eligibility for exams"), - "generate_reference": - MessageLookupByLibrary.simpleMessage("Generate reference"), - "geral_registration": - MessageLookupByLibrary.simpleMessage("General Registration"), - "improvement_registration": - MessageLookupByLibrary.simpleMessage("Enrollment for Improvement"), - "increment": MessageLookupByLibrary.simpleMessage("Increment 1,00€"), - "instructor": MessageLookupByLibrary.simpleMessage("Instructor"), - "instructors": MessageLookupByLibrary.simpleMessage("Instructors"), - "internet_status_exception": MessageLookupByLibrary.simpleMessage( - "Check your internet connection"), - "invalid_credentials": - MessageLookupByLibrary.simpleMessage("Invalid credentials"), - "keep_login": MessageLookupByLibrary.simpleMessage("Remember me"), - "language": MessageLookupByLibrary.simpleMessage("Language"), - "last_refresh_time": m0, - "last_timestamp": m1, - "lectures": MessageLookupByLibrary.simpleMessage("Lectures"), - "library_occupation": - MessageLookupByLibrary.simpleMessage("Library Occupation"), - "load_error": MessageLookupByLibrary.simpleMessage( - "Error loading the information"), - "loading_terms": MessageLookupByLibrary.simpleMessage( - "Loading Terms and Conditions..."), - "login": MessageLookupByLibrary.simpleMessage("Login"), - "login_with_credentials": - MessageLookupByLibrary.simpleMessage("Login with credentials"), - "logout": MessageLookupByLibrary.simpleMessage("Log out"), - "lunch": MessageLookupByLibrary.simpleMessage("Lunch"), - "menus": MessageLookupByLibrary.simpleMessage("Menus"), - "min_value_reference": - MessageLookupByLibrary.simpleMessage("Minimum value: 1,00 €"), - "moreInstructors": m2, - "multimedia_center": - MessageLookupByLibrary.simpleMessage("Multimedia center"), - "nav_title": m3, - "news": MessageLookupByLibrary.simpleMessage("News"), - "no": MessageLookupByLibrary.simpleMessage("No"), - "noExamsScheduled": - MessageLookupByLibrary.simpleMessage("No exams scheduled"), - "no_app": MessageLookupByLibrary.simpleMessage( - "No app found to open the file"), - "no_bus": MessageLookupByLibrary.simpleMessage("Don\'t miss any bus!"), - "no_bus_stops": - MessageLookupByLibrary.simpleMessage("No configured stops"), - "no_class": MessageLookupByLibrary.simpleMessage( - "There are no classes to display"), - "no_classes": - MessageLookupByLibrary.simpleMessage("No classes to present"), - "no_classes_on": - MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), - "no_classes_on_weekend": - MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), - "no_college": MessageLookupByLibrary.simpleMessage("no college"), - "no_course_units": MessageLookupByLibrary.simpleMessage( - "No course units in the selected period"), - "no_data": MessageLookupByLibrary.simpleMessage( - "There is no data to show at this time"), - "no_date": MessageLookupByLibrary.simpleMessage("No date"), - "no_events": MessageLookupByLibrary.simpleMessage("No events found"), - "no_exams": MessageLookupByLibrary.simpleMessage( - "You have no exams scheduled\n"), - "no_exams_label": MessageLookupByLibrary.simpleMessage( - "Looks like you are on vacation!"), - "no_favorite_restaurants": - MessageLookupByLibrary.simpleMessage("No favorite restaurants"), - "no_files_found": - MessageLookupByLibrary.simpleMessage("No files found"), - "no_info": MessageLookupByLibrary.simpleMessage( - "There is no information to display"), - "no_internet": MessageLookupByLibrary.simpleMessage( - "It looks like you\'re offline"), - "no_library_info": MessageLookupByLibrary.simpleMessage( - "No library occupation information available"), - "no_link": - MessageLookupByLibrary.simpleMessage("We couldn\'t open the link"), - "no_menu_info": MessageLookupByLibrary.simpleMessage( - "There is no information available about meals"), - "no_menus": MessageLookupByLibrary.simpleMessage( - "There are no meals available"), - "no_name_course": - MessageLookupByLibrary.simpleMessage("Unnamed course"), - "no_places_info": MessageLookupByLibrary.simpleMessage( - "There is no information available about places"), - "no_print_info": MessageLookupByLibrary.simpleMessage( - "No print balance information"), - "no_references": MessageLookupByLibrary.simpleMessage( - "There are no references to pay"), - "no_results": MessageLookupByLibrary.simpleMessage("No match"), - "no_selected_courses": MessageLookupByLibrary.simpleMessage( - "There are no course units to display"), - "no_selected_exams": MessageLookupByLibrary.simpleMessage( - "There are no exams to present"), - "no_trips": MessageLookupByLibrary.simpleMessage( - "No trips found at the moment"), - "notifications": MessageLookupByLibrary.simpleMessage("Notifications"), - "occurrence_type": - MessageLookupByLibrary.simpleMessage("Type of occurrence"), - "of_month": MessageLookupByLibrary.simpleMessage("of"), - "open_error": - MessageLookupByLibrary.simpleMessage("Error opening the file"), - "other_links": MessageLookupByLibrary.simpleMessage("Other links"), - "pass_change_request": MessageLookupByLibrary.simpleMessage( - "For security reasons, passwords must be changed periodically."), - "password": MessageLookupByLibrary.simpleMessage("Password"), - "pendent_references": - MessageLookupByLibrary.simpleMessage("Pending references"), - "permission_denied": - MessageLookupByLibrary.simpleMessage("Permission denied"), - "personal_assistance": - MessageLookupByLibrary.simpleMessage("Face-to-face assistance"), - "press_again": - MessageLookupByLibrary.simpleMessage("Press again to exit"), - "print": MessageLookupByLibrary.simpleMessage("Print"), - "prints": MessageLookupByLibrary.simpleMessage("Prints"), - "problem_id": MessageLookupByLibrary.simpleMessage( - "Brief identification of the problem"), - "program": MessageLookupByLibrary.simpleMessage("Program"), - "reference_sigarra_help": MessageLookupByLibrary.simpleMessage( - "The generated reference data will appear in Sigarra, checking account.\nProfile > Checking Account"), - "reference_success": MessageLookupByLibrary.simpleMessage( - "Reference created successfully!"), - "remove": MessageLookupByLibrary.simpleMessage("Delete"), - "report_error": MessageLookupByLibrary.simpleMessage("Report error"), - "report_error_suggestion": - MessageLookupByLibrary.simpleMessage("Report error/suggestion"), - "restaurant_main_page": MessageLookupByLibrary.simpleMessage( - "Do you want to see your favorite restaurants in the main page?"), - "room": MessageLookupByLibrary.simpleMessage("Room"), - "school_calendar": - MessageLookupByLibrary.simpleMessage("School Calendar"), - "search": MessageLookupByLibrary.simpleMessage("Search"), - "semester": MessageLookupByLibrary.simpleMessage("Semester"), - "send": MessageLookupByLibrary.simpleMessage("Send"), - "sent_error": MessageLookupByLibrary.simpleMessage( - "An error occurred in sending"), - "settings": MessageLookupByLibrary.simpleMessage("Settings"), - "snackbar": MessageLookupByLibrary.simpleMessage("Snackbar"), - "some_error": MessageLookupByLibrary.simpleMessage("Some error!"), - "stcp_stops": - MessageLookupByLibrary.simpleMessage("STCP - Upcoming Trips"), - "student_number": - MessageLookupByLibrary.simpleMessage("Student Number"), - "success": MessageLookupByLibrary.simpleMessage("Sent with success"), - "successful_open": - MessageLookupByLibrary.simpleMessage("File opened successfully"), - "tele_assistance": - MessageLookupByLibrary.simpleMessage("Telephone assistance"), - "tele_personal_assistance": MessageLookupByLibrary.simpleMessage( - "Face-to-face and telephone assistance"), - "telephone": MessageLookupByLibrary.simpleMessage("Telephone"), - "terms": MessageLookupByLibrary.simpleMessage("Terms and Conditions"), - "theme": MessageLookupByLibrary.simpleMessage("Theme"), - "title": MessageLookupByLibrary.simpleMessage("Title"), - "try_again": MessageLookupByLibrary.simpleMessage("Try again"), - "try_different_login": - MessageLookupByLibrary.simpleMessage("Having trouble signing in?"), - "uc_info": MessageLookupByLibrary.simpleMessage("Open UC page"), - "unavailable": MessageLookupByLibrary.simpleMessage("Unavailable"), - "valid_email": - MessageLookupByLibrary.simpleMessage("Please enter a valid email"), - "widget_prompt": MessageLookupByLibrary.simpleMessage( - "Choose a widget to add to your personal area:"), - "wrong_credentials_exception": - MessageLookupByLibrary.simpleMessage("Invalid credentials"), - "year": MessageLookupByLibrary.simpleMessage("Year"), - "yes": MessageLookupByLibrary.simpleMessage("Yes") - }; + static _notInlinedMessages(_) => { + "about" : MessageLookupByLibrary.simpleMessage("About us"), + "academic_services" : MessageLookupByLibrary.simpleMessage("Academic services"), + "account_card_title" : MessageLookupByLibrary.simpleMessage("Checking account"), + "add" : MessageLookupByLibrary.simpleMessage("Add"), + "add_quota" : MessageLookupByLibrary.simpleMessage("Add quota"), + "add_widget" : MessageLookupByLibrary.simpleMessage("Add widget"), + "agree_terms" : MessageLookupByLibrary.simpleMessage("By entering you agree with these"), + "all_widgets_added" : MessageLookupByLibrary.simpleMessage("All available widgets have already been added to your personal area!"), + "assessments" : MessageLookupByLibrary.simpleMessage("Assessments"), + "at_least_one_college" : MessageLookupByLibrary.simpleMessage("Select at least one college"), + "available_amount" : MessageLookupByLibrary.simpleMessage("Available amount"), + "average" : MessageLookupByLibrary.simpleMessage("Average: "), + "balance" : MessageLookupByLibrary.simpleMessage("Balance:"), + "banner_info" : MessageLookupByLibrary.simpleMessage("We do now collect anonymous usage statistics in order to improve your experience. You can change it in settings."), + "bibliography" : MessageLookupByLibrary.simpleMessage("Bibliography"), + "breakfast" : MessageLookupByLibrary.simpleMessage("Breakfast"), + "bs_description" : MessageLookupByLibrary.simpleMessage("Did you find any bugs in the application?\nDo you have any suggestions for the app?\nTell us so we can improve!"), + "bug_description" : MessageLookupByLibrary.simpleMessage("Bug found, how to reproduce it, etc."), + "bus_error" : MessageLookupByLibrary.simpleMessage("Unable to get information"), + "bus_information" : MessageLookupByLibrary.simpleMessage("Select the buses you want information about:"), + "buses_personalize" : MessageLookupByLibrary.simpleMessage("Personalize your buses here"), + "buses_text" : MessageLookupByLibrary.simpleMessage("Favorite buses will be displayed in the favorites \'Bus\' widget. The remaining ones will only be displayed on the page."), + "cancel" : MessageLookupByLibrary.simpleMessage("Cancel"), + "change" : MessageLookupByLibrary.simpleMessage("Change"), + "change_prompt" : MessageLookupByLibrary.simpleMessage("Do you want to change the password?"), + "check_internet" : MessageLookupByLibrary.simpleMessage("Check your internet connection"), + "class_registration" : MessageLookupByLibrary.simpleMessage("Class Registration"), + "collect_usage_stats" : MessageLookupByLibrary.simpleMessage("Collect usage statistics"), + "college" : MessageLookupByLibrary.simpleMessage("College: "), + "college_select" : MessageLookupByLibrary.simpleMessage("select your college(s)"), + "conclude" : MessageLookupByLibrary.simpleMessage("Done"), + "configured_buses" : MessageLookupByLibrary.simpleMessage("Configured Buses"), + "confirm" : MessageLookupByLibrary.simpleMessage("Confirm"), + "confirm_logout" : MessageLookupByLibrary.simpleMessage("Do you really want to log out? Your local data will be deleted and you will have to log in again."), + "consent" : MessageLookupByLibrary.simpleMessage("I consent to this information being reviewed by NIAEFEUP and may be deleted at my request."), + "contact" : MessageLookupByLibrary.simpleMessage("Contact (optional)"), + "copy_center" : MessageLookupByLibrary.simpleMessage("Copy center"), + "copy_center_building" : MessageLookupByLibrary.simpleMessage("Floor -1 of building B | AEFEUP building"), + "courseRegent" : MessageLookupByLibrary.simpleMessage("Course Regent"), + "course_class" : MessageLookupByLibrary.simpleMessage("Classes"), + "course_info" : MessageLookupByLibrary.simpleMessage("Info"), + "courses" : MessageLookupByLibrary.simpleMessage("Courses"), + "current_state" : MessageLookupByLibrary.simpleMessage("Current state: "), + "current_year" : MessageLookupByLibrary.simpleMessage("Current academic year: "), + "decrement" : MessageLookupByLibrary.simpleMessage("Decrement 1,00€"), + "description" : MessageLookupByLibrary.simpleMessage("Description"), + "desired_email" : MessageLookupByLibrary.simpleMessage("Email where you want to be contacted"), + "dinner" : MessageLookupByLibrary.simpleMessage("Dinner"), + "dona_bia" : MessageLookupByLibrary.simpleMessage("D. Beatriz\'s stationery store"), + "dona_bia_building" : MessageLookupByLibrary.simpleMessage("Floor -1 of building B (B-142)"), + "download_error" : MessageLookupByLibrary.simpleMessage("Error downloading the file"), + "ects" : MessageLookupByLibrary.simpleMessage("ECTS performed: "), + "edit_off" : MessageLookupByLibrary.simpleMessage("Edit"), + "edit_on" : MessageLookupByLibrary.simpleMessage("Finish editing"), + "empty_text" : MessageLookupByLibrary.simpleMessage("Please fill in this field"), + "evaluation" : MessageLookupByLibrary.simpleMessage("Evaluation"), + "exams" : MessageLookupByLibrary.simpleMessage("Exams"), + "exams_filter" : MessageLookupByLibrary.simpleMessage("Exams Filter Settings"), + "exit_confirm" : MessageLookupByLibrary.simpleMessage("Do you really want to exit?"), + "expired_password" : MessageLookupByLibrary.simpleMessage("Your password has expired"), + "fail_to_authenticate" : MessageLookupByLibrary.simpleMessage("Failed to authenticate"), + "failed_login" : MessageLookupByLibrary.simpleMessage("Login failed"), + "fee_date" : MessageLookupByLibrary.simpleMessage("Deadline for next fee:"), + "fee_notification" : MessageLookupByLibrary.simpleMessage("Fee deadline"), + "files" : MessageLookupByLibrary.simpleMessage("Files"), + "first_year_registration" : MessageLookupByLibrary.simpleMessage("Year of first registration: "), + "floor" : MessageLookupByLibrary.simpleMessage("Floor"), + "floors" : MessageLookupByLibrary.simpleMessage("Floors"), + "forgot_password" : MessageLookupByLibrary.simpleMessage("Forgot password?"), + "frequency" : MessageLookupByLibrary.simpleMessage("Eligibility for exams"), + "generate_reference" : MessageLookupByLibrary.simpleMessage("Generate reference"), + "geral_registration" : MessageLookupByLibrary.simpleMessage("General Registration"), + "improvement_registration" : MessageLookupByLibrary.simpleMessage("Enrollment for Improvement"), + "increment" : MessageLookupByLibrary.simpleMessage("Increment 1,00€"), + "instructor" : MessageLookupByLibrary.simpleMessage("Instructor"), + "instructors" : MessageLookupByLibrary.simpleMessage("Instructors"), + "internet_status_exception" : MessageLookupByLibrary.simpleMessage("Check your internet connection"), + "invalid_credentials" : MessageLookupByLibrary.simpleMessage("Invalid credentials"), + "keep_login" : MessageLookupByLibrary.simpleMessage("Remember me"), + "language" : MessageLookupByLibrary.simpleMessage("Language"), + "last_refresh_time" : m0, + "last_timestamp" : m1, + "lectures" : MessageLookupByLibrary.simpleMessage("Lectures"), + "library_occupation" : MessageLookupByLibrary.simpleMessage("Library Occupation"), + "load_error" : MessageLookupByLibrary.simpleMessage("Error loading the information"), + "loading_terms" : MessageLookupByLibrary.simpleMessage("Loading Terms and Conditions..."), + "login" : MessageLookupByLibrary.simpleMessage("Login"), + "login_with_credentials" : MessageLookupByLibrary.simpleMessage("Login with credentials"), + "logout" : MessageLookupByLibrary.simpleMessage("Log out"), + "lunch" : MessageLookupByLibrary.simpleMessage("Lunch"), + "menus" : MessageLookupByLibrary.simpleMessage("Menus"), + "min_value_reference" : MessageLookupByLibrary.simpleMessage("Minimum value: 1,00 €"), + "moreInstructors" : m2, + "multimedia_center" : MessageLookupByLibrary.simpleMessage("Multimedia center"), + "nav_title" : m3, + "news" : MessageLookupByLibrary.simpleMessage("News"), + "no" : MessageLookupByLibrary.simpleMessage("No"), + "noExamsScheduled" : MessageLookupByLibrary.simpleMessage("No exams scheduled"), + "no_app" : MessageLookupByLibrary.simpleMessage("No app found to open the file"), + "no_bus" : MessageLookupByLibrary.simpleMessage("Don\'t miss any bus!"), + "no_bus_stops" : MessageLookupByLibrary.simpleMessage("No configured stops"), + "no_class" : MessageLookupByLibrary.simpleMessage("There are no classes to display"), + "no_classes" : MessageLookupByLibrary.simpleMessage("No classes to present"), + "no_classes_on" : MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), + "no_classes_on_weekend" : MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), + "no_college" : MessageLookupByLibrary.simpleMessage("no college"), + "no_course_units" : MessageLookupByLibrary.simpleMessage("No course units in the selected period"), + "no_data" : MessageLookupByLibrary.simpleMessage("There is no data to show at this time"), + "no_date" : MessageLookupByLibrary.simpleMessage("No date"), + "no_events" : MessageLookupByLibrary.simpleMessage("No events found"), + "no_exams" : MessageLookupByLibrary.simpleMessage("You have no exams scheduled\n"), + "no_exams_label" : MessageLookupByLibrary.simpleMessage("Looks like you are on vacation!"), + "no_favorite_restaurants" : MessageLookupByLibrary.simpleMessage("No favorite restaurants"), + "no_files_found" : MessageLookupByLibrary.simpleMessage("No files found"), + "no_info" : MessageLookupByLibrary.simpleMessage("There is no information to display"), + "no_internet" : MessageLookupByLibrary.simpleMessage("It looks like you\'re offline"), + "no_library_info" : MessageLookupByLibrary.simpleMessage("No library occupation information available"), + "no_link" : MessageLookupByLibrary.simpleMessage("We couldn\'t open the link"), + "no_menu_info" : MessageLookupByLibrary.simpleMessage("There is no information available about meals"), + "no_menus" : MessageLookupByLibrary.simpleMessage("There are no meals available"), + "no_name_course" : MessageLookupByLibrary.simpleMessage("Unnamed course"), + "no_places_info" : MessageLookupByLibrary.simpleMessage("There is no information available about places"), + "no_print_info" : MessageLookupByLibrary.simpleMessage("No print balance information"), + "no_references" : MessageLookupByLibrary.simpleMessage("There are no references to pay"), + "no_results" : MessageLookupByLibrary.simpleMessage("No match"), + "no_selected_courses" : MessageLookupByLibrary.simpleMessage("There are no course units to display"), + "no_selected_exams" : MessageLookupByLibrary.simpleMessage("There are no exams to present"), + "no_trips" : MessageLookupByLibrary.simpleMessage("No trips found at the moment"), + "notifications" : MessageLookupByLibrary.simpleMessage("Notifications"), + "occurrence_type" : MessageLookupByLibrary.simpleMessage("Type of occurrence"), + "of_month" : MessageLookupByLibrary.simpleMessage("of"), + "open_error" : MessageLookupByLibrary.simpleMessage("Error opening the file"), + "other_links" : MessageLookupByLibrary.simpleMessage("Other links"), + "pass_change_request" : MessageLookupByLibrary.simpleMessage("For security reasons, passwords must be changed periodically."), + "password" : MessageLookupByLibrary.simpleMessage("Password"), + "pendent_references" : MessageLookupByLibrary.simpleMessage("Pending references"), + "permission_denied" : MessageLookupByLibrary.simpleMessage("Permission denied"), + "personal_assistance" : MessageLookupByLibrary.simpleMessage("Face-to-face assistance"), + "press_again" : MessageLookupByLibrary.simpleMessage("Press again to exit"), + "print" : MessageLookupByLibrary.simpleMessage("Print"), + "prints" : MessageLookupByLibrary.simpleMessage("Prints"), + "problem_id" : MessageLookupByLibrary.simpleMessage("Brief identification of the problem"), + "program" : MessageLookupByLibrary.simpleMessage("Program"), + "reference_sigarra_help" : MessageLookupByLibrary.simpleMessage("The generated reference data will appear in Sigarra, checking account.\nProfile > Checking Account"), + "reference_success" : MessageLookupByLibrary.simpleMessage("Reference created successfully!"), + "remove" : MessageLookupByLibrary.simpleMessage("Delete"), + "report_error" : MessageLookupByLibrary.simpleMessage("Report error"), + "report_error_suggestion" : MessageLookupByLibrary.simpleMessage("Report error/suggestion"), + "restaurant_main_page" : MessageLookupByLibrary.simpleMessage("Do you want to see your favorite restaurants in the main page?"), + "room" : MessageLookupByLibrary.simpleMessage("Room"), + "school_calendar" : MessageLookupByLibrary.simpleMessage("School Calendar"), + "search" : MessageLookupByLibrary.simpleMessage("Search"), + "semester" : MessageLookupByLibrary.simpleMessage("Semester"), + "send" : MessageLookupByLibrary.simpleMessage("Send"), + "sent_error" : MessageLookupByLibrary.simpleMessage("An error occurred in sending"), + "settings" : MessageLookupByLibrary.simpleMessage("Settings"), + "snackbar" : MessageLookupByLibrary.simpleMessage("Snackbar"), + "some_error" : MessageLookupByLibrary.simpleMessage("Some error!"), + "stcp_stops" : MessageLookupByLibrary.simpleMessage("STCP - Upcoming Trips"), + "student_number" : MessageLookupByLibrary.simpleMessage("Student Number"), + "success" : MessageLookupByLibrary.simpleMessage("Sent with success"), + "successful_open" : MessageLookupByLibrary.simpleMessage("File opened successfully"), + "tele_assistance" : MessageLookupByLibrary.simpleMessage("Telephone assistance"), + "tele_personal_assistance" : MessageLookupByLibrary.simpleMessage("Face-to-face and telephone assistance"), + "telephone" : MessageLookupByLibrary.simpleMessage("Telephone"), + "terms" : MessageLookupByLibrary.simpleMessage("Terms and Conditions"), + "theme" : MessageLookupByLibrary.simpleMessage("Theme"), + "title" : MessageLookupByLibrary.simpleMessage("Title"), + "try_again" : MessageLookupByLibrary.simpleMessage("Try again"), + "try_different_login" : MessageLookupByLibrary.simpleMessage("Having trouble signing in?"), + "uc_info" : MessageLookupByLibrary.simpleMessage("Open UC page"), + "unavailable" : MessageLookupByLibrary.simpleMessage("Unavailable"), + "valid_email" : MessageLookupByLibrary.simpleMessage("Please enter a valid email"), + "widget_prompt" : MessageLookupByLibrary.simpleMessage("Choose a widget to add to your personal area:"), + "wrong_credentials_exception" : MessageLookupByLibrary.simpleMessage("Invalid credentials"), + "year" : MessageLookupByLibrary.simpleMessage("Year"), + "yes" : MessageLookupByLibrary.simpleMessage("Yes") + }; } diff --git a/packages/uni_app/lib/generated/intl/messages_pt_PT.dart b/packages/uni_app/lib/generated/intl/messages_pt_PT.dart index a30f27832..8319b62a4 100644 --- a/packages/uni_app/lib/generated/intl/messages_pt_PT.dart +++ b/packages/uni_app/lib/generated/intl/messages_pt_PT.dart @@ -21,305 +21,190 @@ class MessageLookup extends MessageLookupByLibrary { static m0(time) => "última atualização às ${time}"; - static m1(time) => - "${Intl.plural(time, zero: 'Atualizado há ${time} minutos', one: 'Atualizado há ${time} minuto', other: 'Atualizado há ${time} minutos')}"; + static m1(time) => "${Intl.plural(time, zero: 'Atualizado há ${time} minutos', one: 'Atualizado há ${time} minuto', other: 'Atualizado há ${time} minutos')}"; static m2(number) => "+${number} mais"; - static m3(title) => "${Intl.select(title, { - 'horario': 'Horário', - 'exames': 'Exames', - 'area': 'Área Pessoal', - 'cadeiras': 'Cadeiras', - 'autocarros': 'Autocarros', - 'locais': 'Locais', - 'restaurantes': 'Restaurantes', - 'calendario': 'Calendário', - 'biblioteca': 'Biblioteca', - 'percurso_academico': 'Percurso Académico', - 'transportes': 'Transportes', - 'faculdade': 'Faculdade', - 'other': 'Outros', - })}"; + static m3(title) => "${Intl.select(title, {'horario': 'Horário', 'exames': 'Exames', 'area': 'Área Pessoal', 'cadeiras': 'Cadeiras', 'autocarros': 'Autocarros', 'locais': 'Locais', 'restaurantes': 'Restaurantes', 'calendario': 'Calendário', 'biblioteca': 'Biblioteca', 'percurso_academico': 'Percurso Académico', 'transportes': 'Transportes', 'faculdade': 'Faculdade', 'other': 'Outros', })}"; final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "about": MessageLookupByLibrary.simpleMessage("Sobre nós"), - "academic_services": - MessageLookupByLibrary.simpleMessage("Serviços académicos"), - "account_card_title": - MessageLookupByLibrary.simpleMessage("Conta Corrente"), - "add": MessageLookupByLibrary.simpleMessage("Adicionar"), - "add_quota": MessageLookupByLibrary.simpleMessage("Adicionar quota"), - "add_widget": MessageLookupByLibrary.simpleMessage("Adicionar widget"), - "agree_terms": MessageLookupByLibrary.simpleMessage( - "Ao entrares confirmas que concordas com estes"), - "all_widgets_added": MessageLookupByLibrary.simpleMessage( - "Todos os widgets disponíveis já foram adicionados à tua área pessoal!"), - "assessments": MessageLookupByLibrary.simpleMessage("Avaliações"), - "at_least_one_college": MessageLookupByLibrary.simpleMessage( - "Seleciona pelo menos uma faculdade"), - "available_amount": - MessageLookupByLibrary.simpleMessage("Valor disponível"), - "average": MessageLookupByLibrary.simpleMessage("Média: "), - "balance": MessageLookupByLibrary.simpleMessage("Saldo:"), - "banner_info": MessageLookupByLibrary.simpleMessage( - "Agora recolhemos estatísticas de uso anónimas para melhorar a tua experiência. Podes alterá-lo nas definições."), - "bibliography": MessageLookupByLibrary.simpleMessage("Bibliografia"), - "breakfast": MessageLookupByLibrary.simpleMessage("Pequeno Almoço"), - "bs_description": MessageLookupByLibrary.simpleMessage( - "Encontraste algum bug na aplicação?\nTens alguma sugestão para a app?\nConta-nos para que possamos melhorar!"), - "bug_description": MessageLookupByLibrary.simpleMessage( - "Bug encontrado, como o reproduzir, etc"), - "bus_error": MessageLookupByLibrary.simpleMessage( - "Não foi possível obter informação"), - "bus_information": MessageLookupByLibrary.simpleMessage( - "Seleciona os autocarros dos quais queres informação:"), - "buses_personalize": MessageLookupByLibrary.simpleMessage( - "Configura aqui os teus autocarros"), - "buses_text": MessageLookupByLibrary.simpleMessage( - "Os autocarros favoritos serão apresentados no widget \'Autocarros\' dos favoritos. Os restantes serão apresentados apenas na página."), - "cancel": MessageLookupByLibrary.simpleMessage("Cancelar"), - "change": MessageLookupByLibrary.simpleMessage("Alterar"), - "change_prompt": MessageLookupByLibrary.simpleMessage( - "Deseja alterar a palavra-passe?"), - "check_internet": MessageLookupByLibrary.simpleMessage( - "Verifica a tua ligação à internet"), - "class_registration": - MessageLookupByLibrary.simpleMessage("Inscrição de Turmas"), - "collect_usage_stats": MessageLookupByLibrary.simpleMessage( - "Partilhar estatísticas de uso"), - "college": MessageLookupByLibrary.simpleMessage("Faculdade: "), - "college_select": MessageLookupByLibrary.simpleMessage( - "seleciona a(s) tua(s) faculdade(s)"), - "conclude": MessageLookupByLibrary.simpleMessage("Concluído"), - "configured_buses": - MessageLookupByLibrary.simpleMessage("Autocarros Configurados"), - "confirm": MessageLookupByLibrary.simpleMessage("Confirmar"), - "confirm_logout": MessageLookupByLibrary.simpleMessage( - "Tens a certeza de que queres terminar sessão? Os teus dados locais serão apagados e terás de iniciar sessão novamente."), - "consent": MessageLookupByLibrary.simpleMessage( - "Consinto que esta informação seja revista pelo NIAEFEUP, podendo ser eliminada a meu pedido."), - "contact": MessageLookupByLibrary.simpleMessage("Contacto (opcional)"), - "copy_center": MessageLookupByLibrary.simpleMessage("Centro de cópias"), - "copy_center_building": MessageLookupByLibrary.simpleMessage( - "Piso -1 do edifício B | Edifício da AEFEUP"), - "courseRegent": - MessageLookupByLibrary.simpleMessage("Regente da Cadeira"), - "course_class": MessageLookupByLibrary.simpleMessage("Turmas"), - "course_info": MessageLookupByLibrary.simpleMessage("Ficha"), - "courses": MessageLookupByLibrary.simpleMessage("Cursos"), - "current_state": MessageLookupByLibrary.simpleMessage("Estado atual: "), - "current_year": - MessageLookupByLibrary.simpleMessage("Ano curricular atual: "), - "decrement": MessageLookupByLibrary.simpleMessage("Decrementar 1,00€"), - "description": MessageLookupByLibrary.simpleMessage("Descrição"), - "desired_email": MessageLookupByLibrary.simpleMessage( - "Email em que desejas ser contactado"), - "dinner": MessageLookupByLibrary.simpleMessage("Jantar"), - "dona_bia": - MessageLookupByLibrary.simpleMessage("Papelaria D. Beatriz"), - "dona_bia_building": MessageLookupByLibrary.simpleMessage( - "Piso -1 do edifício B (B-142)"), - "download_error": MessageLookupByLibrary.simpleMessage( - "Erro ao descarregar o ficheiro"), - "ects": MessageLookupByLibrary.simpleMessage("ECTS realizados: "), - "edit_off": MessageLookupByLibrary.simpleMessage("Editar"), - "edit_on": MessageLookupByLibrary.simpleMessage("Concluir edição"), - "empty_text": MessageLookupByLibrary.simpleMessage( - "Por favor preenche este campo"), - "evaluation": MessageLookupByLibrary.simpleMessage("Avaliação"), - "exams": MessageLookupByLibrary.simpleMessage("Exames"), - "exams_filter": - MessageLookupByLibrary.simpleMessage("Definições Filtro de Exames"), - "exit_confirm": MessageLookupByLibrary.simpleMessage( - "Tem a certeza de que pretende sair?"), - "expired_password": - MessageLookupByLibrary.simpleMessage("A tua palavra-passe expirou"), - "fail_to_authenticate": - MessageLookupByLibrary.simpleMessage("Falha ao autenticar"), - "failed_login": MessageLookupByLibrary.simpleMessage("O login falhou"), - "fee_date": MessageLookupByLibrary.simpleMessage( - "Data limite próxima prestação:"), - "fee_notification": - MessageLookupByLibrary.simpleMessage("Data limite de propina"), - "files": MessageLookupByLibrary.simpleMessage("Ficheiros"), - "first_year_registration": - MessageLookupByLibrary.simpleMessage("Ano da primeira inscrição: "), - "floor": MessageLookupByLibrary.simpleMessage("Piso"), - "floors": MessageLookupByLibrary.simpleMessage("Pisos"), - "forgot_password": - MessageLookupByLibrary.simpleMessage("Esqueceu a palavra-passe?"), - "frequency": - MessageLookupByLibrary.simpleMessage("Obtenção de Frequência"), - "generate_reference": - MessageLookupByLibrary.simpleMessage("Gerar referência"), - "geral_registration": - MessageLookupByLibrary.simpleMessage("Inscrição Geral"), - "improvement_registration": - MessageLookupByLibrary.simpleMessage("Inscrição para Melhoria"), - "increment": MessageLookupByLibrary.simpleMessage("Incrementar 1,00€"), - "instructor": MessageLookupByLibrary.simpleMessage("Docente"), - "instructors": MessageLookupByLibrary.simpleMessage("Docentes"), - "internet_status_exception": MessageLookupByLibrary.simpleMessage( - "Verifique sua conexão com a internet"), - "invalid_credentials": - MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), - "keep_login": MessageLookupByLibrary.simpleMessage("Lembre-se de mim"), - "language": MessageLookupByLibrary.simpleMessage("Idioma"), - "last_refresh_time": m0, - "last_timestamp": m1, - "lectures": MessageLookupByLibrary.simpleMessage("Aulas"), - "library_occupation": - MessageLookupByLibrary.simpleMessage("Ocupação da Biblioteca"), - "load_error": MessageLookupByLibrary.simpleMessage( - "Erro ao carregar a informação"), - "loading_terms": MessageLookupByLibrary.simpleMessage( - "Carregando os Termos e Condições..."), - "login": MessageLookupByLibrary.simpleMessage("Entrar"), - "login_with_credentials": - MessageLookupByLibrary.simpleMessage("Entrar com credenciais"), - "logout": MessageLookupByLibrary.simpleMessage("Terminar sessão"), - "lunch": MessageLookupByLibrary.simpleMessage("Almoço"), - "menus": MessageLookupByLibrary.simpleMessage("Ementas"), - "min_value_reference": - MessageLookupByLibrary.simpleMessage("Valor mínimo: 1,00 €"), - "moreInstructors": m2, - "multimedia_center": - MessageLookupByLibrary.simpleMessage("Centro de multimédia"), - "nav_title": m3, - "news": MessageLookupByLibrary.simpleMessage("Notícias"), - "no": MessageLookupByLibrary.simpleMessage("Não"), - "noExamsScheduled": - MessageLookupByLibrary.simpleMessage("Não há exames agendados"), - "no_app": MessageLookupByLibrary.simpleMessage( - "Nenhuma aplicação encontrada para abrir o ficheiro"), - "no_bus": MessageLookupByLibrary.simpleMessage( - "Não percas nenhum autocarro!"), - "no_bus_stops": MessageLookupByLibrary.simpleMessage( - "Não existe nenhuma paragem configurada"), - "no_class": MessageLookupByLibrary.simpleMessage( - "Não existem turmas para apresentar"), - "no_classes": MessageLookupByLibrary.simpleMessage( - "Não existem aulas para apresentar"), - "no_classes_on": - MessageLookupByLibrary.simpleMessage("Não possui aulas à"), - "no_classes_on_weekend": - MessageLookupByLibrary.simpleMessage("Não possui aulas ao"), - "no_college": MessageLookupByLibrary.simpleMessage("sem faculdade"), - "no_course_units": MessageLookupByLibrary.simpleMessage( - "Sem cadeiras no período selecionado"), - "no_data": MessageLookupByLibrary.simpleMessage( - "Não há dados a mostrar neste momento"), - "no_date": MessageLookupByLibrary.simpleMessage("Sem data"), - "no_events": - MessageLookupByLibrary.simpleMessage("Nenhum evento encontrado"), - "no_exams": - MessageLookupByLibrary.simpleMessage("Não possui exames marcados"), - "no_exams_label": - MessageLookupByLibrary.simpleMessage("Parece que estás de férias!"), - "no_favorite_restaurants": - MessageLookupByLibrary.simpleMessage("Sem restaurantes favoritos"), - "no_files_found": - MessageLookupByLibrary.simpleMessage("Nenhum ficheiro encontrado"), - "no_info": MessageLookupByLibrary.simpleMessage( - "Não existem informações para apresentar"), - "no_internet": - MessageLookupByLibrary.simpleMessage("Parece que estás offline"), - "no_library_info": - MessageLookupByLibrary.simpleMessage("Sem informação de ocupação"), - "no_link": MessageLookupByLibrary.simpleMessage( - "Não conseguimos abrir o link"), - "no_menu_info": MessageLookupByLibrary.simpleMessage( - "Não há informação disponível sobre refeições"), - "no_menus": MessageLookupByLibrary.simpleMessage( - "Não há refeições disponíveis"), - "no_name_course": - MessageLookupByLibrary.simpleMessage("Curso sem nome"), - "no_places_info": MessageLookupByLibrary.simpleMessage( - "Não há informação disponível sobre locais"), - "no_print_info": - MessageLookupByLibrary.simpleMessage("Sem informação de saldo"), - "no_references": MessageLookupByLibrary.simpleMessage( - "Não existem referências a pagar"), - "no_results": MessageLookupByLibrary.simpleMessage("Sem resultados"), - "no_selected_courses": MessageLookupByLibrary.simpleMessage( - "Não existem cadeiras para apresentar"), - "no_selected_exams": MessageLookupByLibrary.simpleMessage( - "Não existem exames para apresentar"), - "no_trips": MessageLookupByLibrary.simpleMessage( - "Não há viagens planeadas de momento"), - "notifications": MessageLookupByLibrary.simpleMessage("Notificações"), - "occurrence_type": - MessageLookupByLibrary.simpleMessage("Tipo de ocorrência"), - "of_month": MessageLookupByLibrary.simpleMessage("de"), - "open_error": - MessageLookupByLibrary.simpleMessage("Erro ao abrir o ficheiro"), - "other_links": MessageLookupByLibrary.simpleMessage("Outros links"), - "pass_change_request": MessageLookupByLibrary.simpleMessage( - "Por razões de segurança, as palavras-passe têm de ser alteradas periodicamente."), - "password": MessageLookupByLibrary.simpleMessage("Palavra-passe"), - "pendent_references": - MessageLookupByLibrary.simpleMessage("Referências pendentes"), - "permission_denied": - MessageLookupByLibrary.simpleMessage("Sem permissão"), - "personal_assistance": - MessageLookupByLibrary.simpleMessage("Atendimento presencial"), - "press_again": MessageLookupByLibrary.simpleMessage( - "Pressione novamente para sair"), - "print": MessageLookupByLibrary.simpleMessage("Impressão"), - "prints": MessageLookupByLibrary.simpleMessage("Impressões"), - "problem_id": MessageLookupByLibrary.simpleMessage( - "Breve identificação do problema"), - "program": MessageLookupByLibrary.simpleMessage("Programa"), - "reference_sigarra_help": MessageLookupByLibrary.simpleMessage( - "Os dados da referência gerada aparecerão no Sigarra, conta corrente. Perfil > Conta Corrente"), - "reference_success": MessageLookupByLibrary.simpleMessage( - "Referência criada com sucesso!"), - "remove": MessageLookupByLibrary.simpleMessage("Remover"), - "report_error": MessageLookupByLibrary.simpleMessage("Reportar erro"), - "report_error_suggestion": - MessageLookupByLibrary.simpleMessage("Reportar erro/sugestão"), - "restaurant_main_page": MessageLookupByLibrary.simpleMessage( - "Queres ver os teus restaurantes favoritos na página principal?"), - "room": MessageLookupByLibrary.simpleMessage("Sala"), - "school_calendar": - MessageLookupByLibrary.simpleMessage("Calendário Escolar"), - "search": MessageLookupByLibrary.simpleMessage("Pesquisar"), - "semester": MessageLookupByLibrary.simpleMessage("Semestre"), - "send": MessageLookupByLibrary.simpleMessage("Enviar"), - "sent_error": - MessageLookupByLibrary.simpleMessage("Ocorreu um erro no envio"), - "settings": MessageLookupByLibrary.simpleMessage("Definições"), - "snackbar": MessageLookupByLibrary.simpleMessage("Snackbar"), - "some_error": MessageLookupByLibrary.simpleMessage("Algum erro!"), - "stcp_stops": - MessageLookupByLibrary.simpleMessage("STCP - Próximas Viagens"), - "student_number": - MessageLookupByLibrary.simpleMessage("Número de Estudante"), - "success": MessageLookupByLibrary.simpleMessage("Enviado com sucesso"), - "successful_open": - MessageLookupByLibrary.simpleMessage("Ficheiro aberto com sucesso"), - "tele_assistance": - MessageLookupByLibrary.simpleMessage("Atendimento telefónico"), - "tele_personal_assistance": MessageLookupByLibrary.simpleMessage( - "Atendimento presencial e telefónico"), - "telephone": MessageLookupByLibrary.simpleMessage("Telefone"), - "terms": MessageLookupByLibrary.simpleMessage("Termos e Condições"), - "theme": MessageLookupByLibrary.simpleMessage("Tema"), - "title": MessageLookupByLibrary.simpleMessage("Título"), - "try_again": MessageLookupByLibrary.simpleMessage("Tentar de novo"), - "try_different_login": MessageLookupByLibrary.simpleMessage( - "Problemas ao iniciar sessão?"), - "uc_info": MessageLookupByLibrary.simpleMessage("Abrir página da UC"), - "unavailable": MessageLookupByLibrary.simpleMessage("Indisponível"), - "valid_email": MessageLookupByLibrary.simpleMessage( - "Por favor insere um email válido"), - "widget_prompt": MessageLookupByLibrary.simpleMessage( - "Escolhe um widget para adicionares à tua área pessoal:"), - "wrong_credentials_exception": - MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), - "year": MessageLookupByLibrary.simpleMessage("Ano"), - "yes": MessageLookupByLibrary.simpleMessage("Sim") - }; + static _notInlinedMessages(_) => { + "about" : MessageLookupByLibrary.simpleMessage("Sobre nós"), + "academic_services" : MessageLookupByLibrary.simpleMessage("Serviços académicos"), + "account_card_title" : MessageLookupByLibrary.simpleMessage("Conta Corrente"), + "add" : MessageLookupByLibrary.simpleMessage("Adicionar"), + "add_quota" : MessageLookupByLibrary.simpleMessage("Adicionar quota"), + "add_widget" : MessageLookupByLibrary.simpleMessage("Adicionar widget"), + "agree_terms" : MessageLookupByLibrary.simpleMessage("Ao entrares confirmas que concordas com estes"), + "all_widgets_added" : MessageLookupByLibrary.simpleMessage("Todos os widgets disponíveis já foram adicionados à tua área pessoal!"), + "assessments" : MessageLookupByLibrary.simpleMessage("Avaliações"), + "at_least_one_college" : MessageLookupByLibrary.simpleMessage("Seleciona pelo menos uma faculdade"), + "available_amount" : MessageLookupByLibrary.simpleMessage("Valor disponível"), + "average" : MessageLookupByLibrary.simpleMessage("Média: "), + "balance" : MessageLookupByLibrary.simpleMessage("Saldo:"), + "banner_info" : MessageLookupByLibrary.simpleMessage("Agora recolhemos estatísticas de uso anónimas para melhorar a tua experiência. Podes alterá-lo nas definições."), + "bibliography" : MessageLookupByLibrary.simpleMessage("Bibliografia"), + "breakfast" : MessageLookupByLibrary.simpleMessage("Pequeno Almoço"), + "bs_description" : MessageLookupByLibrary.simpleMessage("Encontraste algum bug na aplicação?\nTens alguma sugestão para a app?\nConta-nos para que possamos melhorar!"), + "bug_description" : MessageLookupByLibrary.simpleMessage("Bug encontrado, como o reproduzir, etc"), + "bus_error" : MessageLookupByLibrary.simpleMessage("Não foi possível obter informação"), + "bus_information" : MessageLookupByLibrary.simpleMessage("Seleciona os autocarros dos quais queres informação:"), + "buses_personalize" : MessageLookupByLibrary.simpleMessage("Configura aqui os teus autocarros"), + "buses_text" : MessageLookupByLibrary.simpleMessage("Os autocarros favoritos serão apresentados no widget \'Autocarros\' dos favoritos. Os restantes serão apresentados apenas na página."), + "cancel" : MessageLookupByLibrary.simpleMessage("Cancelar"), + "change" : MessageLookupByLibrary.simpleMessage("Alterar"), + "change_prompt" : MessageLookupByLibrary.simpleMessage("Deseja alterar a palavra-passe?"), + "check_internet" : MessageLookupByLibrary.simpleMessage("Verifica a tua ligação à internet"), + "class_registration" : MessageLookupByLibrary.simpleMessage("Inscrição de Turmas"), + "collect_usage_stats" : MessageLookupByLibrary.simpleMessage("Partilhar estatísticas de uso"), + "college" : MessageLookupByLibrary.simpleMessage("Faculdade: "), + "college_select" : MessageLookupByLibrary.simpleMessage("seleciona a(s) tua(s) faculdade(s)"), + "conclude" : MessageLookupByLibrary.simpleMessage("Concluído"), + "configured_buses" : MessageLookupByLibrary.simpleMessage("Autocarros Configurados"), + "confirm" : MessageLookupByLibrary.simpleMessage("Confirmar"), + "confirm_logout" : MessageLookupByLibrary.simpleMessage("Tens a certeza de que queres terminar sessão? Os teus dados locais serão apagados e terás de iniciar sessão novamente."), + "consent" : MessageLookupByLibrary.simpleMessage("Consinto que esta informação seja revista pelo NIAEFEUP, podendo ser eliminada a meu pedido."), + "contact" : MessageLookupByLibrary.simpleMessage("Contacto (opcional)"), + "copy_center" : MessageLookupByLibrary.simpleMessage("Centro de cópias"), + "copy_center_building" : MessageLookupByLibrary.simpleMessage("Piso -1 do edifício B | Edifício da AEFEUP"), + "courseRegent" : MessageLookupByLibrary.simpleMessage("Regente da Cadeira"), + "course_class" : MessageLookupByLibrary.simpleMessage("Turmas"), + "course_info" : MessageLookupByLibrary.simpleMessage("Ficha"), + "courses" : MessageLookupByLibrary.simpleMessage("Cursos"), + "current_state" : MessageLookupByLibrary.simpleMessage("Estado atual: "), + "current_year" : MessageLookupByLibrary.simpleMessage("Ano curricular atual: "), + "decrement" : MessageLookupByLibrary.simpleMessage("Decrementar 1,00€"), + "description" : MessageLookupByLibrary.simpleMessage("Descrição"), + "desired_email" : MessageLookupByLibrary.simpleMessage("Email em que desejas ser contactado"), + "dinner" : MessageLookupByLibrary.simpleMessage("Jantar"), + "dona_bia" : MessageLookupByLibrary.simpleMessage("Papelaria D. Beatriz"), + "dona_bia_building" : MessageLookupByLibrary.simpleMessage("Piso -1 do edifício B (B-142)"), + "download_error" : MessageLookupByLibrary.simpleMessage("Erro ao descarregar o ficheiro"), + "ects" : MessageLookupByLibrary.simpleMessage("ECTS realizados: "), + "edit_off" : MessageLookupByLibrary.simpleMessage("Editar"), + "edit_on" : MessageLookupByLibrary.simpleMessage("Concluir edição"), + "empty_text" : MessageLookupByLibrary.simpleMessage("Por favor preenche este campo"), + "evaluation" : MessageLookupByLibrary.simpleMessage("Avaliação"), + "exams" : MessageLookupByLibrary.simpleMessage("Exames"), + "exams_filter" : MessageLookupByLibrary.simpleMessage("Definições Filtro de Exames"), + "exit_confirm" : MessageLookupByLibrary.simpleMessage("Tem a certeza de que pretende sair?"), + "expired_password" : MessageLookupByLibrary.simpleMessage("A tua palavra-passe expirou"), + "fail_to_authenticate" : MessageLookupByLibrary.simpleMessage("Falha ao autenticar"), + "failed_login" : MessageLookupByLibrary.simpleMessage("O login falhou"), + "fee_date" : MessageLookupByLibrary.simpleMessage("Data limite próxima prestação:"), + "fee_notification" : MessageLookupByLibrary.simpleMessage("Data limite de propina"), + "files" : MessageLookupByLibrary.simpleMessage("Ficheiros"), + "first_year_registration" : MessageLookupByLibrary.simpleMessage("Ano da primeira inscrição: "), + "floor" : MessageLookupByLibrary.simpleMessage("Piso"), + "floors" : MessageLookupByLibrary.simpleMessage("Pisos"), + "forgot_password" : MessageLookupByLibrary.simpleMessage("Esqueceu a palavra-passe?"), + "frequency" : MessageLookupByLibrary.simpleMessage("Obtenção de Frequência"), + "generate_reference" : MessageLookupByLibrary.simpleMessage("Gerar referência"), + "geral_registration" : MessageLookupByLibrary.simpleMessage("Inscrição Geral"), + "improvement_registration" : MessageLookupByLibrary.simpleMessage("Inscrição para Melhoria"), + "increment" : MessageLookupByLibrary.simpleMessage("Incrementar 1,00€"), + "instructor" : MessageLookupByLibrary.simpleMessage("Docente"), + "instructors" : MessageLookupByLibrary.simpleMessage("Docentes"), + "internet_status_exception" : MessageLookupByLibrary.simpleMessage("Verifique sua conexão com a internet"), + "invalid_credentials" : MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), + "keep_login" : MessageLookupByLibrary.simpleMessage("Lembre-se de mim"), + "language" : MessageLookupByLibrary.simpleMessage("Idioma"), + "last_refresh_time" : m0, + "last_timestamp" : m1, + "lectures" : MessageLookupByLibrary.simpleMessage("Aulas"), + "library_occupation" : MessageLookupByLibrary.simpleMessage("Ocupação da Biblioteca"), + "load_error" : MessageLookupByLibrary.simpleMessage("Erro ao carregar a informação"), + "loading_terms" : MessageLookupByLibrary.simpleMessage("Carregando os Termos e Condições..."), + "login" : MessageLookupByLibrary.simpleMessage("Entrar"), + "login_with_credentials" : MessageLookupByLibrary.simpleMessage("Entrar com credenciais"), + "logout" : MessageLookupByLibrary.simpleMessage("Terminar sessão"), + "lunch" : MessageLookupByLibrary.simpleMessage("Almoço"), + "menus" : MessageLookupByLibrary.simpleMessage("Ementas"), + "min_value_reference" : MessageLookupByLibrary.simpleMessage("Valor mínimo: 1,00 €"), + "moreInstructors" : m2, + "multimedia_center" : MessageLookupByLibrary.simpleMessage("Centro de multimédia"), + "nav_title" : m3, + "news" : MessageLookupByLibrary.simpleMessage("Notícias"), + "no" : MessageLookupByLibrary.simpleMessage("Não"), + "noExamsScheduled" : MessageLookupByLibrary.simpleMessage("Não há exames agendados"), + "no_app" : MessageLookupByLibrary.simpleMessage("Nenhuma aplicação encontrada para abrir o ficheiro"), + "no_bus" : MessageLookupByLibrary.simpleMessage("Não percas nenhum autocarro!"), + "no_bus_stops" : MessageLookupByLibrary.simpleMessage("Não existe nenhuma paragem configurada"), + "no_class" : MessageLookupByLibrary.simpleMessage("Não existem turmas para apresentar"), + "no_classes" : MessageLookupByLibrary.simpleMessage("Não existem aulas para apresentar"), + "no_classes_on" : MessageLookupByLibrary.simpleMessage("Não possui aulas à"), + "no_classes_on_weekend" : MessageLookupByLibrary.simpleMessage("Não possui aulas ao"), + "no_college" : MessageLookupByLibrary.simpleMessage("sem faculdade"), + "no_course_units" : MessageLookupByLibrary.simpleMessage("Sem cadeiras no período selecionado"), + "no_data" : MessageLookupByLibrary.simpleMessage("Não há dados a mostrar neste momento"), + "no_date" : MessageLookupByLibrary.simpleMessage("Sem data"), + "no_events" : MessageLookupByLibrary.simpleMessage("Nenhum evento encontrado"), + "no_exams" : MessageLookupByLibrary.simpleMessage("Não possui exames marcados"), + "no_exams_label" : MessageLookupByLibrary.simpleMessage("Parece que estás de férias!"), + "no_favorite_restaurants" : MessageLookupByLibrary.simpleMessage("Sem restaurantes favoritos"), + "no_files_found" : MessageLookupByLibrary.simpleMessage("Nenhum ficheiro encontrado"), + "no_info" : MessageLookupByLibrary.simpleMessage("Não existem informações para apresentar"), + "no_internet" : MessageLookupByLibrary.simpleMessage("Parece que estás offline"), + "no_library_info" : MessageLookupByLibrary.simpleMessage("Sem informação de ocupação"), + "no_link" : MessageLookupByLibrary.simpleMessage("Não conseguimos abrir o link"), + "no_menu_info" : MessageLookupByLibrary.simpleMessage("Não há informação disponível sobre refeições"), + "no_menus" : MessageLookupByLibrary.simpleMessage("Não há refeições disponíveis"), + "no_name_course" : MessageLookupByLibrary.simpleMessage("Curso sem nome"), + "no_places_info" : MessageLookupByLibrary.simpleMessage("Não há informação disponível sobre locais"), + "no_print_info" : MessageLookupByLibrary.simpleMessage("Sem informação de saldo"), + "no_references" : MessageLookupByLibrary.simpleMessage("Não existem referências a pagar"), + "no_results" : MessageLookupByLibrary.simpleMessage("Sem resultados"), + "no_selected_courses" : MessageLookupByLibrary.simpleMessage("Não existem cadeiras para apresentar"), + "no_selected_exams" : MessageLookupByLibrary.simpleMessage("Não existem exames para apresentar"), + "no_trips" : MessageLookupByLibrary.simpleMessage("Não há viagens planeadas de momento"), + "notifications" : MessageLookupByLibrary.simpleMessage("Notificações"), + "occurrence_type" : MessageLookupByLibrary.simpleMessage("Tipo de ocorrência"), + "of_month" : MessageLookupByLibrary.simpleMessage("de"), + "open_error" : MessageLookupByLibrary.simpleMessage("Erro ao abrir o ficheiro"), + "other_links" : MessageLookupByLibrary.simpleMessage("Outros links"), + "pass_change_request" : MessageLookupByLibrary.simpleMessage("Por razões de segurança, as palavras-passe têm de ser alteradas periodicamente."), + "password" : MessageLookupByLibrary.simpleMessage("Palavra-passe"), + "pendent_references" : MessageLookupByLibrary.simpleMessage("Referências pendentes"), + "permission_denied" : MessageLookupByLibrary.simpleMessage("Sem permissão"), + "personal_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento presencial"), + "press_again" : MessageLookupByLibrary.simpleMessage("Pressione novamente para sair"), + "print" : MessageLookupByLibrary.simpleMessage("Impressão"), + "prints" : MessageLookupByLibrary.simpleMessage("Impressões"), + "problem_id" : MessageLookupByLibrary.simpleMessage("Breve identificação do problema"), + "program" : MessageLookupByLibrary.simpleMessage("Programa"), + "reference_sigarra_help" : MessageLookupByLibrary.simpleMessage("Os dados da referência gerada aparecerão no Sigarra, conta corrente. Perfil > Conta Corrente"), + "reference_success" : MessageLookupByLibrary.simpleMessage("Referência criada com sucesso!"), + "remove" : MessageLookupByLibrary.simpleMessage("Remover"), + "report_error" : MessageLookupByLibrary.simpleMessage("Reportar erro"), + "report_error_suggestion" : MessageLookupByLibrary.simpleMessage("Reportar erro/sugestão"), + "restaurant_main_page" : MessageLookupByLibrary.simpleMessage("Queres ver os teus restaurantes favoritos na página principal?"), + "room" : MessageLookupByLibrary.simpleMessage("Sala"), + "school_calendar" : MessageLookupByLibrary.simpleMessage("Calendário Escolar"), + "search" : MessageLookupByLibrary.simpleMessage("Pesquisar"), + "semester" : MessageLookupByLibrary.simpleMessage("Semestre"), + "send" : MessageLookupByLibrary.simpleMessage("Enviar"), + "sent_error" : MessageLookupByLibrary.simpleMessage("Ocorreu um erro no envio"), + "settings" : MessageLookupByLibrary.simpleMessage("Definições"), + "snackbar" : MessageLookupByLibrary.simpleMessage("Snackbar"), + "some_error" : MessageLookupByLibrary.simpleMessage("Algum erro!"), + "stcp_stops" : MessageLookupByLibrary.simpleMessage("STCP - Próximas Viagens"), + "student_number" : MessageLookupByLibrary.simpleMessage("Número de Estudante"), + "success" : MessageLookupByLibrary.simpleMessage("Enviado com sucesso"), + "successful_open" : MessageLookupByLibrary.simpleMessage("Ficheiro aberto com sucesso"), + "tele_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento telefónico"), + "tele_personal_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento presencial e telefónico"), + "telephone" : MessageLookupByLibrary.simpleMessage("Telefone"), + "terms" : MessageLookupByLibrary.simpleMessage("Termos e Condições"), + "theme" : MessageLookupByLibrary.simpleMessage("Tema"), + "title" : MessageLookupByLibrary.simpleMessage("Título"), + "try_again" : MessageLookupByLibrary.simpleMessage("Tentar de novo"), + "try_different_login" : MessageLookupByLibrary.simpleMessage("Problemas ao iniciar sessão?"), + "uc_info" : MessageLookupByLibrary.simpleMessage("Abrir página da UC"), + "unavailable" : MessageLookupByLibrary.simpleMessage("Indisponível"), + "valid_email" : MessageLookupByLibrary.simpleMessage("Por favor insere um email válido"), + "widget_prompt" : MessageLookupByLibrary.simpleMessage("Escolhe um widget para adicionares à tua área pessoal:"), + "wrong_credentials_exception" : MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), + "year" : MessageLookupByLibrary.simpleMessage("Ano"), + "yes" : MessageLookupByLibrary.simpleMessage("Sim") + }; } diff --git a/packages/uni_app/lib/view/academic_path/academic_path.dart b/packages/uni_app/lib/view/academic_path/academic_path.dart index bfac776d1..e435e9c2b 100644 --- a/packages/uni_app/lib/view/academic_path/academic_path.dart +++ b/packages/uni_app/lib/view/academic_path/academic_path.dart @@ -5,6 +5,7 @@ import 'package:uni/view/academic_path/exam_page.dart'; import 'package:uni/view/common_widgets/pages_layouts/general/general.dart'; import 'package:uni_ui/icons.dart'; import 'package:uni_ui/tabs/tab_icon.dart'; +import 'package:uni/view/academic_path/widgets/course_units_card.dart'; class AcademicPathPageView extends StatefulWidget { const AcademicPathPageView({super.key}); @@ -53,13 +54,13 @@ class AcademicPathPageViewState extends GeneralPageViewState Widget getBody(BuildContext context) { return TabBarView( controller: tabController, - children: const [ + children: [ Center( child: Text('To be implemented'), ), ExamsPage(), Center( - child: Text('To be implemented'), + child: CourseUnitsCard(), ), ], ); diff --git a/packages/uni_app/lib/view/common_widgets/generic_expandable.dart b/packages/uni_app/lib/view/common_widgets/generic_expandable.dart index a22275c78..03348bf33 100644 --- a/packages/uni_app/lib/view/common_widgets/generic_expandable.dart +++ b/packages/uni_app/lib/view/common_widgets/generic_expandable.dart @@ -16,7 +16,7 @@ class GenericExpandable extends StatelessWidget { return ExpandablePanel( header: Align( alignment: Alignment.centerLeft, - child: Text(title, style: const TextStyle(fontSize: 20)), + child: Text(title, style: Theme.of(context).textTheme.headlineLarge), ), collapsed: ShaderMask( shaderCallback: (bounds) => const LinearGradient( diff --git a/packages/uni_app/lib/view/common_widgets/page_title.dart b/packages/uni_app/lib/view/common_widgets/page_title.dart index ccc46a440..e5d7b2b58 100644 --- a/packages/uni_app/lib/view/common_widgets/page_title.dart +++ b/packages/uni_app/lib/view/common_widgets/page_title.dart @@ -16,9 +16,7 @@ class PageTitle extends StatelessWidget { Widget build(BuildContext context) { final Widget title = Text( name, - style: Theme.of(context).textTheme.headlineMedium?.copyWith( - color: Theme.of(context).primaryTextTheme.headlineMedium?.color, - ), + style: Theme.of(context).textTheme.headlineLarge, ); return Container( padding: pad ? const EdgeInsets.fromLTRB(20, 30, 20, 10) : null, diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index fb341afaf..007cd75a0 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -92,8 +92,6 @@ class CourseUnitDetailPageViewState crossAxisAlignment: CrossAxisAlignment.start, children: [ TabBar( - // todo : pixel font size might not be the best choice - labelStyle: const TextStyle(fontSize: 12), tabs: [ TabIcon(icon: UniIcons.notebook, text: S.of(context).course_info), TabIcon(icon: UniIcons.classes, text: S.of(context).course_class), diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 09bb4e218..7dfa97b30 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -30,7 +30,7 @@ class CourseUnitSheetView extends StatelessWidget { children: [ Text( S.of(context).instructors, - style: const TextStyle(fontSize: 20), + style: Theme.of(context).textTheme.headlineLarge, ), if (courseUnitSheet.professors.length <= 4) _buildInstructorsRow(context, courseUnitSheet.professors) @@ -49,12 +49,12 @@ class CourseUnitSheetView extends StatelessWidget { ), Text( S.of(context).assessments, - style: const TextStyle(fontSize: 20), + style: Theme.of(context).textTheme.headlineLarge, ), if (exams.isEmpty) Padding( padding: const EdgeInsets.only(top: 8), - child: Text(S.of(context).noExamsScheduled), + child: Text(S.of(context).noExamsScheduled, style: Theme.of(context).textTheme.bodyLarge), ) else SizedBox( @@ -82,7 +82,7 @@ class CourseUnitSheetView extends StatelessWidget { ), Text( S.of(context).bibliography, - style: const TextStyle(fontSize: 20), + style: Theme.of(context).textTheme.headlineLarge, ), _buildBooksRow(context, courseUnitSheet.books), ], @@ -132,10 +132,7 @@ class CourseUnitSheetView extends StatelessWidget { const SizedBox(width: 8), Text( S.of(context).moreInstructors(remaining.length), - style: const TextStyle( - fontSize: 14, - fontWeight: FontWeight.w500, - ), + style: Theme.of(context).textTheme.bodyLarge, ), ], ), @@ -184,10 +181,7 @@ class CourseUnitSheetView extends StatelessWidget { width: 100, child: Text( instructor.name, - style: const TextStyle( - fontSize: 14, - fontWeight: FontWeight.w500, - ), + style: Theme.of(context).textTheme.titleMedium, overflow: TextOverflow.ellipsis, ), ), @@ -195,7 +189,7 @@ class CourseUnitSheetView extends StatelessWidget { instructor.isRegent ? S.of(context).courseRegent : S.of(context).instructor, - style: const TextStyle(fontSize: 12, color: Colors.grey), + style: Theme.of(context).textTheme.labelLarge, ), ], ), @@ -269,6 +263,7 @@ class CourseUnitSheetView extends StatelessWidget { child: Text( book.title, textAlign: TextAlign.center, + style: Theme.of(context).textTheme.bodyLarge, ), ), ], @@ -292,6 +287,7 @@ class CourseUnitSheetView extends StatelessWidget { GenericExpandable( content: HtmlWidget( sectionContent != 'null' ? sectionContent : S.of(context).no_info, + textStyle: Theme.of(context).textTheme.bodyLarge, ), title: sectionTitle, ), diff --git a/packages/uni_ui/lib/cards/exam_card.dart b/packages/uni_ui/lib/cards/exam_card.dart index fe68238c9..b8b54ad75 100644 --- a/packages/uni_ui/lib/cards/exam_card.dart +++ b/packages/uni_ui/lib/cards/exam_card.dart @@ -36,13 +36,6 @@ class ExamCard extends StatelessWidget { 'EE': BadgeColors.ee, }; - static const Map examTypeColors = { - 'MT': BadgeColors.mt, - 'EN': BadgeColors.en, - 'ER': BadgeColors.er, - 'EE': BadgeColors.ee, - }; - @override Widget build(BuildContext context) { return Opacity( From 86f59a007e18319a408ea7b1483f1f974d2fe2ae Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Tue, 7 Jan 2025 23:28:02 +0000 Subject: [PATCH 30/32] Added textTheme to professor's modal --- .../course_units_info_fetcher.dart | 1 - .../lib/generated/intl/messages_all.dart | 9 +- .../lib/generated/intl/messages_en.dart | 475 ++++++++++------- .../lib/generated/intl/messages_pt_PT.dart | 477 +++++++++++------- packages/uni_app/lib/generated/l10n.dart | 21 +- .../model/entities/course_units/sheet.dart | 8 - .../lib/view/academic_path/academic_path.dart | 8 +- .../course_unit_info/course_unit_info.dart | 2 +- .../widgets/course_unit_sheet.dart | 5 +- .../widgets/modal_professor_info.dart | 21 +- .../uni_ui/lib/cards/restaurant_card.dart | 13 +- .../cards/widgets/restaurant_menu_item.dart | 11 +- 12 files changed, 632 insertions(+), 419 deletions(-) diff --git a/packages/uni_app/lib/controller/fetchers/course_units_fetcher/course_units_info_fetcher.dart b/packages/uni_app/lib/controller/fetchers/course_units_fetcher/course_units_info_fetcher.dart index 34f546c76..f85647962 100644 --- a/packages/uni_app/lib/controller/fetchers/course_units_fetcher/course_units_info_fetcher.dart +++ b/packages/uni_app/lib/controller/fetchers/course_units_fetcher/course_units_info_fetcher.dart @@ -49,7 +49,6 @@ class CourseUnitsInfoFetcher implements SessionDependantFetcher { ); } - Future> fetchCourseUnitFiles( Session session, int occurId, diff --git a/packages/uni_app/lib/generated/intl/messages_all.dart b/packages/uni_app/lib/generated/intl/messages_all.dart index fb1bd2689..6b3ebeae5 100644 --- a/packages/uni_app/lib/generated/intl/messages_all.dart +++ b/packages/uni_app/lib/generated/intl/messages_all.dart @@ -38,9 +38,8 @@ MessageLookupByLibrary? _findExact(String localeName) { /// User programs should call this before using [localeName] for messages. Future initializeMessages(String localeName) async { var availableLocale = Intl.verifiedLocale( - localeName, - (locale) => _deferredLibraries[locale] != null, - onFailure: (_) => null); + localeName, (locale) => _deferredLibraries[locale] != null, + onFailure: (_) => null); if (availableLocale == null) { return new Future.value(false); } @@ -60,8 +59,8 @@ bool _messagesExistFor(String locale) { } MessageLookupByLibrary? _findGeneratedMessagesFor(String locale) { - var actualLocale = Intl.verifiedLocale(locale, _messagesExistFor, - onFailure: (_) => null); + var actualLocale = + Intl.verifiedLocale(locale, _messagesExistFor, onFailure: (_) => null); if (actualLocale == null) return null; return _findExact(actualLocale); } diff --git a/packages/uni_app/lib/generated/intl/messages_en.dart b/packages/uni_app/lib/generated/intl/messages_en.dart index f45a77917..3d7c6916b 100644 --- a/packages/uni_app/lib/generated/intl/messages_en.dart +++ b/packages/uni_app/lib/generated/intl/messages_en.dart @@ -21,190 +21,303 @@ class MessageLookup extends MessageLookupByLibrary { static m0(time) => "last refresh at ${time}"; - static m1(time) => "${Intl.plural(time, zero: 'Refreshed ${time} minutes ago', one: 'Refreshed ${time} minute ago', other: 'Refreshed ${time} minutes ago')}"; + static m1(time) => + "${Intl.plural(time, zero: 'Refreshed ${time} minutes ago', one: 'Refreshed ${time} minute ago', other: 'Refreshed ${time} minutes ago')}"; static m2(number) => "${number} more"; - static m3(title) => "${Intl.select(title, {'horario': 'Schedule', 'exames': 'Exams', 'area': 'Personal Area', 'cadeiras': 'Course Units', 'autocarros': 'Buses', 'locais': 'Places', 'restaurantes': 'Restaurants', 'calendario': 'Calendar', 'biblioteca': 'Library', 'percurso_academico': 'Academic Path', 'transportes': 'Transports', 'faculdade': 'Faculty', 'other': 'Other', })}"; + static m3(title) => "${Intl.select(title, { + 'horario': 'Schedule', + 'exames': 'Exams', + 'area': 'Personal Area', + 'cadeiras': 'Course Units', + 'autocarros': 'Buses', + 'locais': 'Places', + 'restaurantes': 'Restaurants', + 'calendario': 'Calendar', + 'biblioteca': 'Library', + 'percurso_academico': 'Academic Path', + 'transportes': 'Transports', + 'faculdade': 'Faculty', + 'other': 'Other', + })}"; final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "about" : MessageLookupByLibrary.simpleMessage("About us"), - "academic_services" : MessageLookupByLibrary.simpleMessage("Academic services"), - "account_card_title" : MessageLookupByLibrary.simpleMessage("Checking account"), - "add" : MessageLookupByLibrary.simpleMessage("Add"), - "add_quota" : MessageLookupByLibrary.simpleMessage("Add quota"), - "add_widget" : MessageLookupByLibrary.simpleMessage("Add widget"), - "agree_terms" : MessageLookupByLibrary.simpleMessage("By entering you agree with these"), - "all_widgets_added" : MessageLookupByLibrary.simpleMessage("All available widgets have already been added to your personal area!"), - "assessments" : MessageLookupByLibrary.simpleMessage("Assessments"), - "at_least_one_college" : MessageLookupByLibrary.simpleMessage("Select at least one college"), - "available_amount" : MessageLookupByLibrary.simpleMessage("Available amount"), - "average" : MessageLookupByLibrary.simpleMessage("Average: "), - "balance" : MessageLookupByLibrary.simpleMessage("Balance:"), - "banner_info" : MessageLookupByLibrary.simpleMessage("We do now collect anonymous usage statistics in order to improve your experience. You can change it in settings."), - "bibliography" : MessageLookupByLibrary.simpleMessage("Bibliography"), - "breakfast" : MessageLookupByLibrary.simpleMessage("Breakfast"), - "bs_description" : MessageLookupByLibrary.simpleMessage("Did you find any bugs in the application?\nDo you have any suggestions for the app?\nTell us so we can improve!"), - "bug_description" : MessageLookupByLibrary.simpleMessage("Bug found, how to reproduce it, etc."), - "bus_error" : MessageLookupByLibrary.simpleMessage("Unable to get information"), - "bus_information" : MessageLookupByLibrary.simpleMessage("Select the buses you want information about:"), - "buses_personalize" : MessageLookupByLibrary.simpleMessage("Personalize your buses here"), - "buses_text" : MessageLookupByLibrary.simpleMessage("Favorite buses will be displayed in the favorites \'Bus\' widget. The remaining ones will only be displayed on the page."), - "cancel" : MessageLookupByLibrary.simpleMessage("Cancel"), - "change" : MessageLookupByLibrary.simpleMessage("Change"), - "change_prompt" : MessageLookupByLibrary.simpleMessage("Do you want to change the password?"), - "check_internet" : MessageLookupByLibrary.simpleMessage("Check your internet connection"), - "class_registration" : MessageLookupByLibrary.simpleMessage("Class Registration"), - "collect_usage_stats" : MessageLookupByLibrary.simpleMessage("Collect usage statistics"), - "college" : MessageLookupByLibrary.simpleMessage("College: "), - "college_select" : MessageLookupByLibrary.simpleMessage("select your college(s)"), - "conclude" : MessageLookupByLibrary.simpleMessage("Done"), - "configured_buses" : MessageLookupByLibrary.simpleMessage("Configured Buses"), - "confirm" : MessageLookupByLibrary.simpleMessage("Confirm"), - "confirm_logout" : MessageLookupByLibrary.simpleMessage("Do you really want to log out? Your local data will be deleted and you will have to log in again."), - "consent" : MessageLookupByLibrary.simpleMessage("I consent to this information being reviewed by NIAEFEUP and may be deleted at my request."), - "contact" : MessageLookupByLibrary.simpleMessage("Contact (optional)"), - "copy_center" : MessageLookupByLibrary.simpleMessage("Copy center"), - "copy_center_building" : MessageLookupByLibrary.simpleMessage("Floor -1 of building B | AEFEUP building"), - "courseRegent" : MessageLookupByLibrary.simpleMessage("Course Regent"), - "course_class" : MessageLookupByLibrary.simpleMessage("Classes"), - "course_info" : MessageLookupByLibrary.simpleMessage("Info"), - "courses" : MessageLookupByLibrary.simpleMessage("Courses"), - "current_state" : MessageLookupByLibrary.simpleMessage("Current state: "), - "current_year" : MessageLookupByLibrary.simpleMessage("Current academic year: "), - "decrement" : MessageLookupByLibrary.simpleMessage("Decrement 1,00€"), - "description" : MessageLookupByLibrary.simpleMessage("Description"), - "desired_email" : MessageLookupByLibrary.simpleMessage("Email where you want to be contacted"), - "dinner" : MessageLookupByLibrary.simpleMessage("Dinner"), - "dona_bia" : MessageLookupByLibrary.simpleMessage("D. Beatriz\'s stationery store"), - "dona_bia_building" : MessageLookupByLibrary.simpleMessage("Floor -1 of building B (B-142)"), - "download_error" : MessageLookupByLibrary.simpleMessage("Error downloading the file"), - "ects" : MessageLookupByLibrary.simpleMessage("ECTS performed: "), - "edit_off" : MessageLookupByLibrary.simpleMessage("Edit"), - "edit_on" : MessageLookupByLibrary.simpleMessage("Finish editing"), - "empty_text" : MessageLookupByLibrary.simpleMessage("Please fill in this field"), - "evaluation" : MessageLookupByLibrary.simpleMessage("Evaluation"), - "exams" : MessageLookupByLibrary.simpleMessage("Exams"), - "exams_filter" : MessageLookupByLibrary.simpleMessage("Exams Filter Settings"), - "exit_confirm" : MessageLookupByLibrary.simpleMessage("Do you really want to exit?"), - "expired_password" : MessageLookupByLibrary.simpleMessage("Your password has expired"), - "fail_to_authenticate" : MessageLookupByLibrary.simpleMessage("Failed to authenticate"), - "failed_login" : MessageLookupByLibrary.simpleMessage("Login failed"), - "fee_date" : MessageLookupByLibrary.simpleMessage("Deadline for next fee:"), - "fee_notification" : MessageLookupByLibrary.simpleMessage("Fee deadline"), - "files" : MessageLookupByLibrary.simpleMessage("Files"), - "first_year_registration" : MessageLookupByLibrary.simpleMessage("Year of first registration: "), - "floor" : MessageLookupByLibrary.simpleMessage("Floor"), - "floors" : MessageLookupByLibrary.simpleMessage("Floors"), - "forgot_password" : MessageLookupByLibrary.simpleMessage("Forgot password?"), - "frequency" : MessageLookupByLibrary.simpleMessage("Eligibility for exams"), - "generate_reference" : MessageLookupByLibrary.simpleMessage("Generate reference"), - "geral_registration" : MessageLookupByLibrary.simpleMessage("General Registration"), - "improvement_registration" : MessageLookupByLibrary.simpleMessage("Enrollment for Improvement"), - "increment" : MessageLookupByLibrary.simpleMessage("Increment 1,00€"), - "instructor" : MessageLookupByLibrary.simpleMessage("Instructor"), - "instructors" : MessageLookupByLibrary.simpleMessage("Instructors"), - "internet_status_exception" : MessageLookupByLibrary.simpleMessage("Check your internet connection"), - "invalid_credentials" : MessageLookupByLibrary.simpleMessage("Invalid credentials"), - "keep_login" : MessageLookupByLibrary.simpleMessage("Remember me"), - "language" : MessageLookupByLibrary.simpleMessage("Language"), - "last_refresh_time" : m0, - "last_timestamp" : m1, - "lectures" : MessageLookupByLibrary.simpleMessage("Lectures"), - "library_occupation" : MessageLookupByLibrary.simpleMessage("Library Occupation"), - "load_error" : MessageLookupByLibrary.simpleMessage("Error loading the information"), - "loading_terms" : MessageLookupByLibrary.simpleMessage("Loading Terms and Conditions..."), - "login" : MessageLookupByLibrary.simpleMessage("Login"), - "login_with_credentials" : MessageLookupByLibrary.simpleMessage("Login with credentials"), - "logout" : MessageLookupByLibrary.simpleMessage("Log out"), - "lunch" : MessageLookupByLibrary.simpleMessage("Lunch"), - "menus" : MessageLookupByLibrary.simpleMessage("Menus"), - "min_value_reference" : MessageLookupByLibrary.simpleMessage("Minimum value: 1,00 €"), - "moreInstructors" : m2, - "multimedia_center" : MessageLookupByLibrary.simpleMessage("Multimedia center"), - "nav_title" : m3, - "news" : MessageLookupByLibrary.simpleMessage("News"), - "no" : MessageLookupByLibrary.simpleMessage("No"), - "noExamsScheduled" : MessageLookupByLibrary.simpleMessage("No exams scheduled"), - "no_app" : MessageLookupByLibrary.simpleMessage("No app found to open the file"), - "no_bus" : MessageLookupByLibrary.simpleMessage("Don\'t miss any bus!"), - "no_bus_stops" : MessageLookupByLibrary.simpleMessage("No configured stops"), - "no_class" : MessageLookupByLibrary.simpleMessage("There are no classes to display"), - "no_classes" : MessageLookupByLibrary.simpleMessage("No classes to present"), - "no_classes_on" : MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), - "no_classes_on_weekend" : MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), - "no_college" : MessageLookupByLibrary.simpleMessage("no college"), - "no_course_units" : MessageLookupByLibrary.simpleMessage("No course units in the selected period"), - "no_data" : MessageLookupByLibrary.simpleMessage("There is no data to show at this time"), - "no_date" : MessageLookupByLibrary.simpleMessage("No date"), - "no_events" : MessageLookupByLibrary.simpleMessage("No events found"), - "no_exams" : MessageLookupByLibrary.simpleMessage("You have no exams scheduled\n"), - "no_exams_label" : MessageLookupByLibrary.simpleMessage("Looks like you are on vacation!"), - "no_favorite_restaurants" : MessageLookupByLibrary.simpleMessage("No favorite restaurants"), - "no_files_found" : MessageLookupByLibrary.simpleMessage("No files found"), - "no_info" : MessageLookupByLibrary.simpleMessage("There is no information to display"), - "no_internet" : MessageLookupByLibrary.simpleMessage("It looks like you\'re offline"), - "no_library_info" : MessageLookupByLibrary.simpleMessage("No library occupation information available"), - "no_link" : MessageLookupByLibrary.simpleMessage("We couldn\'t open the link"), - "no_menu_info" : MessageLookupByLibrary.simpleMessage("There is no information available about meals"), - "no_menus" : MessageLookupByLibrary.simpleMessage("There are no meals available"), - "no_name_course" : MessageLookupByLibrary.simpleMessage("Unnamed course"), - "no_places_info" : MessageLookupByLibrary.simpleMessage("There is no information available about places"), - "no_print_info" : MessageLookupByLibrary.simpleMessage("No print balance information"), - "no_references" : MessageLookupByLibrary.simpleMessage("There are no references to pay"), - "no_results" : MessageLookupByLibrary.simpleMessage("No match"), - "no_selected_courses" : MessageLookupByLibrary.simpleMessage("There are no course units to display"), - "no_selected_exams" : MessageLookupByLibrary.simpleMessage("There are no exams to present"), - "no_trips" : MessageLookupByLibrary.simpleMessage("No trips found at the moment"), - "notifications" : MessageLookupByLibrary.simpleMessage("Notifications"), - "occurrence_type" : MessageLookupByLibrary.simpleMessage("Type of occurrence"), - "of_month" : MessageLookupByLibrary.simpleMessage("of"), - "open_error" : MessageLookupByLibrary.simpleMessage("Error opening the file"), - "other_links" : MessageLookupByLibrary.simpleMessage("Other links"), - "pass_change_request" : MessageLookupByLibrary.simpleMessage("For security reasons, passwords must be changed periodically."), - "password" : MessageLookupByLibrary.simpleMessage("Password"), - "pendent_references" : MessageLookupByLibrary.simpleMessage("Pending references"), - "permission_denied" : MessageLookupByLibrary.simpleMessage("Permission denied"), - "personal_assistance" : MessageLookupByLibrary.simpleMessage("Face-to-face assistance"), - "press_again" : MessageLookupByLibrary.simpleMessage("Press again to exit"), - "print" : MessageLookupByLibrary.simpleMessage("Print"), - "prints" : MessageLookupByLibrary.simpleMessage("Prints"), - "problem_id" : MessageLookupByLibrary.simpleMessage("Brief identification of the problem"), - "program" : MessageLookupByLibrary.simpleMessage("Program"), - "reference_sigarra_help" : MessageLookupByLibrary.simpleMessage("The generated reference data will appear in Sigarra, checking account.\nProfile > Checking Account"), - "reference_success" : MessageLookupByLibrary.simpleMessage("Reference created successfully!"), - "remove" : MessageLookupByLibrary.simpleMessage("Delete"), - "report_error" : MessageLookupByLibrary.simpleMessage("Report error"), - "report_error_suggestion" : MessageLookupByLibrary.simpleMessage("Report error/suggestion"), - "restaurant_main_page" : MessageLookupByLibrary.simpleMessage("Do you want to see your favorite restaurants in the main page?"), - "room" : MessageLookupByLibrary.simpleMessage("Room"), - "school_calendar" : MessageLookupByLibrary.simpleMessage("School Calendar"), - "search" : MessageLookupByLibrary.simpleMessage("Search"), - "semester" : MessageLookupByLibrary.simpleMessage("Semester"), - "send" : MessageLookupByLibrary.simpleMessage("Send"), - "sent_error" : MessageLookupByLibrary.simpleMessage("An error occurred in sending"), - "settings" : MessageLookupByLibrary.simpleMessage("Settings"), - "snackbar" : MessageLookupByLibrary.simpleMessage("Snackbar"), - "some_error" : MessageLookupByLibrary.simpleMessage("Some error!"), - "stcp_stops" : MessageLookupByLibrary.simpleMessage("STCP - Upcoming Trips"), - "student_number" : MessageLookupByLibrary.simpleMessage("Student Number"), - "success" : MessageLookupByLibrary.simpleMessage("Sent with success"), - "successful_open" : MessageLookupByLibrary.simpleMessage("File opened successfully"), - "tele_assistance" : MessageLookupByLibrary.simpleMessage("Telephone assistance"), - "tele_personal_assistance" : MessageLookupByLibrary.simpleMessage("Face-to-face and telephone assistance"), - "telephone" : MessageLookupByLibrary.simpleMessage("Telephone"), - "terms" : MessageLookupByLibrary.simpleMessage("Terms and Conditions"), - "theme" : MessageLookupByLibrary.simpleMessage("Theme"), - "title" : MessageLookupByLibrary.simpleMessage("Title"), - "try_again" : MessageLookupByLibrary.simpleMessage("Try again"), - "try_different_login" : MessageLookupByLibrary.simpleMessage("Having trouble signing in?"), - "uc_info" : MessageLookupByLibrary.simpleMessage("Open UC page"), - "unavailable" : MessageLookupByLibrary.simpleMessage("Unavailable"), - "valid_email" : MessageLookupByLibrary.simpleMessage("Please enter a valid email"), - "widget_prompt" : MessageLookupByLibrary.simpleMessage("Choose a widget to add to your personal area:"), - "wrong_credentials_exception" : MessageLookupByLibrary.simpleMessage("Invalid credentials"), - "year" : MessageLookupByLibrary.simpleMessage("Year"), - "yes" : MessageLookupByLibrary.simpleMessage("Yes") - }; + static _notInlinedMessages(_) => { + "about": MessageLookupByLibrary.simpleMessage("About us"), + "academic_services": + MessageLookupByLibrary.simpleMessage("Academic services"), + "account_card_title": + MessageLookupByLibrary.simpleMessage("Checking account"), + "add": MessageLookupByLibrary.simpleMessage("Add"), + "add_quota": MessageLookupByLibrary.simpleMessage("Add quota"), + "add_widget": MessageLookupByLibrary.simpleMessage("Add widget"), + "agree_terms": MessageLookupByLibrary.simpleMessage( + "By entering you agree with these"), + "all_widgets_added": MessageLookupByLibrary.simpleMessage( + "All available widgets have already been added to your personal area!"), + "assessments": MessageLookupByLibrary.simpleMessage("Assessments"), + "at_least_one_college": + MessageLookupByLibrary.simpleMessage("Select at least one college"), + "available_amount": + MessageLookupByLibrary.simpleMessage("Available amount"), + "average": MessageLookupByLibrary.simpleMessage("Average: "), + "balance": MessageLookupByLibrary.simpleMessage("Balance:"), + "banner_info": MessageLookupByLibrary.simpleMessage( + "We do now collect anonymous usage statistics in order to improve your experience. You can change it in settings."), + "bibliography": MessageLookupByLibrary.simpleMessage("Bibliography"), + "breakfast": MessageLookupByLibrary.simpleMessage("Breakfast"), + "bs_description": MessageLookupByLibrary.simpleMessage( + "Did you find any bugs in the application?\nDo you have any suggestions for the app?\nTell us so we can improve!"), + "bug_description": MessageLookupByLibrary.simpleMessage( + "Bug found, how to reproduce it, etc."), + "bus_error": + MessageLookupByLibrary.simpleMessage("Unable to get information"), + "bus_information": MessageLookupByLibrary.simpleMessage( + "Select the buses you want information about:"), + "buses_personalize": + MessageLookupByLibrary.simpleMessage("Personalize your buses here"), + "buses_text": MessageLookupByLibrary.simpleMessage( + "Favorite buses will be displayed in the favorites \'Bus\' widget. The remaining ones will only be displayed on the page."), + "cancel": MessageLookupByLibrary.simpleMessage("Cancel"), + "change": MessageLookupByLibrary.simpleMessage("Change"), + "change_prompt": MessageLookupByLibrary.simpleMessage( + "Do you want to change the password?"), + "check_internet": MessageLookupByLibrary.simpleMessage( + "Check your internet connection"), + "class_registration": + MessageLookupByLibrary.simpleMessage("Class Registration"), + "collect_usage_stats": + MessageLookupByLibrary.simpleMessage("Collect usage statistics"), + "college": MessageLookupByLibrary.simpleMessage("College: "), + "college_select": + MessageLookupByLibrary.simpleMessage("select your college(s)"), + "conclude": MessageLookupByLibrary.simpleMessage("Done"), + "configured_buses": + MessageLookupByLibrary.simpleMessage("Configured Buses"), + "confirm": MessageLookupByLibrary.simpleMessage("Confirm"), + "confirm_logout": MessageLookupByLibrary.simpleMessage( + "Do you really want to log out? Your local data will be deleted and you will have to log in again."), + "consent": MessageLookupByLibrary.simpleMessage( + "I consent to this information being reviewed by NIAEFEUP and may be deleted at my request."), + "contact": MessageLookupByLibrary.simpleMessage("Contact (optional)"), + "copy_center": MessageLookupByLibrary.simpleMessage("Copy center"), + "copy_center_building": MessageLookupByLibrary.simpleMessage( + "Floor -1 of building B | AEFEUP building"), + "courseRegent": MessageLookupByLibrary.simpleMessage("Course Regent"), + "course_class": MessageLookupByLibrary.simpleMessage("Classes"), + "course_info": MessageLookupByLibrary.simpleMessage("Info"), + "courses": MessageLookupByLibrary.simpleMessage("Courses"), + "current_state": + MessageLookupByLibrary.simpleMessage("Current state: "), + "current_year": + MessageLookupByLibrary.simpleMessage("Current academic year: "), + "decrement": MessageLookupByLibrary.simpleMessage("Decrement 1,00€"), + "description": MessageLookupByLibrary.simpleMessage("Description"), + "desired_email": MessageLookupByLibrary.simpleMessage( + "Email where you want to be contacted"), + "dinner": MessageLookupByLibrary.simpleMessage("Dinner"), + "dona_bia": MessageLookupByLibrary.simpleMessage( + "D. Beatriz\'s stationery store"), + "dona_bia_building": MessageLookupByLibrary.simpleMessage( + "Floor -1 of building B (B-142)"), + "download_error": + MessageLookupByLibrary.simpleMessage("Error downloading the file"), + "ects": MessageLookupByLibrary.simpleMessage("ECTS performed: "), + "edit_off": MessageLookupByLibrary.simpleMessage("Edit"), + "edit_on": MessageLookupByLibrary.simpleMessage("Finish editing"), + "empty_text": + MessageLookupByLibrary.simpleMessage("Please fill in this field"), + "evaluation": MessageLookupByLibrary.simpleMessage("Evaluation"), + "exams": MessageLookupByLibrary.simpleMessage("Exams"), + "exams_filter": + MessageLookupByLibrary.simpleMessage("Exams Filter Settings"), + "exit_confirm": + MessageLookupByLibrary.simpleMessage("Do you really want to exit?"), + "expired_password": + MessageLookupByLibrary.simpleMessage("Your password has expired"), + "fail_to_authenticate": + MessageLookupByLibrary.simpleMessage("Failed to authenticate"), + "failed_login": MessageLookupByLibrary.simpleMessage("Login failed"), + "fee_date": + MessageLookupByLibrary.simpleMessage("Deadline for next fee:"), + "fee_notification": + MessageLookupByLibrary.simpleMessage("Fee deadline"), + "files": MessageLookupByLibrary.simpleMessage("Files"), + "first_year_registration": MessageLookupByLibrary.simpleMessage( + "Year of first registration: "), + "floor": MessageLookupByLibrary.simpleMessage("Floor"), + "floors": MessageLookupByLibrary.simpleMessage("Floors"), + "forgot_password": + MessageLookupByLibrary.simpleMessage("Forgot password?"), + "frequency": + MessageLookupByLibrary.simpleMessage("Eligibility for exams"), + "generate_reference": + MessageLookupByLibrary.simpleMessage("Generate reference"), + "geral_registration": + MessageLookupByLibrary.simpleMessage("General Registration"), + "improvement_registration": + MessageLookupByLibrary.simpleMessage("Enrollment for Improvement"), + "increment": MessageLookupByLibrary.simpleMessage("Increment 1,00€"), + "instructor": MessageLookupByLibrary.simpleMessage("Instructor"), + "instructors": MessageLookupByLibrary.simpleMessage("Instructors"), + "internet_status_exception": MessageLookupByLibrary.simpleMessage( + "Check your internet connection"), + "invalid_credentials": + MessageLookupByLibrary.simpleMessage("Invalid credentials"), + "keep_login": MessageLookupByLibrary.simpleMessage("Remember me"), + "language": MessageLookupByLibrary.simpleMessage("Language"), + "last_refresh_time": m0, + "last_timestamp": m1, + "lectures": MessageLookupByLibrary.simpleMessage("Lectures"), + "library_occupation": + MessageLookupByLibrary.simpleMessage("Library Occupation"), + "load_error": MessageLookupByLibrary.simpleMessage( + "Error loading the information"), + "loading_terms": MessageLookupByLibrary.simpleMessage( + "Loading Terms and Conditions..."), + "login": MessageLookupByLibrary.simpleMessage("Login"), + "login_with_credentials": + MessageLookupByLibrary.simpleMessage("Login with credentials"), + "logout": MessageLookupByLibrary.simpleMessage("Log out"), + "lunch": MessageLookupByLibrary.simpleMessage("Lunch"), + "menus": MessageLookupByLibrary.simpleMessage("Menus"), + "min_value_reference": + MessageLookupByLibrary.simpleMessage("Minimum value: 1,00 €"), + "moreInstructors": m2, + "multimedia_center": + MessageLookupByLibrary.simpleMessage("Multimedia center"), + "nav_title": m3, + "news": MessageLookupByLibrary.simpleMessage("News"), + "no": MessageLookupByLibrary.simpleMessage("No"), + "noExamsScheduled": + MessageLookupByLibrary.simpleMessage("No exams scheduled"), + "no_app": MessageLookupByLibrary.simpleMessage( + "No app found to open the file"), + "no_bus": MessageLookupByLibrary.simpleMessage("Don\'t miss any bus!"), + "no_bus_stops": + MessageLookupByLibrary.simpleMessage("No configured stops"), + "no_class": MessageLookupByLibrary.simpleMessage( + "There are no classes to display"), + "no_classes": + MessageLookupByLibrary.simpleMessage("No classes to present"), + "no_classes_on": + MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), + "no_classes_on_weekend": + MessageLookupByLibrary.simpleMessage("You don\'t have classes on"), + "no_college": MessageLookupByLibrary.simpleMessage("no college"), + "no_course_units": MessageLookupByLibrary.simpleMessage( + "No course units in the selected period"), + "no_data": MessageLookupByLibrary.simpleMessage( + "There is no data to show at this time"), + "no_date": MessageLookupByLibrary.simpleMessage("No date"), + "no_events": MessageLookupByLibrary.simpleMessage("No events found"), + "no_exams": MessageLookupByLibrary.simpleMessage( + "You have no exams scheduled\n"), + "no_exams_label": MessageLookupByLibrary.simpleMessage( + "Looks like you are on vacation!"), + "no_favorite_restaurants": + MessageLookupByLibrary.simpleMessage("No favorite restaurants"), + "no_files_found": + MessageLookupByLibrary.simpleMessage("No files found"), + "no_info": MessageLookupByLibrary.simpleMessage( + "There is no information to display"), + "no_internet": MessageLookupByLibrary.simpleMessage( + "It looks like you\'re offline"), + "no_library_info": MessageLookupByLibrary.simpleMessage( + "No library occupation information available"), + "no_link": + MessageLookupByLibrary.simpleMessage("We couldn\'t open the link"), + "no_menu_info": MessageLookupByLibrary.simpleMessage( + "There is no information available about meals"), + "no_menus": MessageLookupByLibrary.simpleMessage( + "There are no meals available"), + "no_name_course": + MessageLookupByLibrary.simpleMessage("Unnamed course"), + "no_places_info": MessageLookupByLibrary.simpleMessage( + "There is no information available about places"), + "no_print_info": MessageLookupByLibrary.simpleMessage( + "No print balance information"), + "no_references": MessageLookupByLibrary.simpleMessage( + "There are no references to pay"), + "no_results": MessageLookupByLibrary.simpleMessage("No match"), + "no_selected_courses": MessageLookupByLibrary.simpleMessage( + "There are no course units to display"), + "no_selected_exams": MessageLookupByLibrary.simpleMessage( + "There are no exams to present"), + "no_trips": MessageLookupByLibrary.simpleMessage( + "No trips found at the moment"), + "notifications": MessageLookupByLibrary.simpleMessage("Notifications"), + "occurrence_type": + MessageLookupByLibrary.simpleMessage("Type of occurrence"), + "of_month": MessageLookupByLibrary.simpleMessage("of"), + "open_error": + MessageLookupByLibrary.simpleMessage("Error opening the file"), + "other_links": MessageLookupByLibrary.simpleMessage("Other links"), + "pass_change_request": MessageLookupByLibrary.simpleMessage( + "For security reasons, passwords must be changed periodically."), + "password": MessageLookupByLibrary.simpleMessage("Password"), + "pendent_references": + MessageLookupByLibrary.simpleMessage("Pending references"), + "permission_denied": + MessageLookupByLibrary.simpleMessage("Permission denied"), + "personal_assistance": + MessageLookupByLibrary.simpleMessage("Face-to-face assistance"), + "press_again": + MessageLookupByLibrary.simpleMessage("Press again to exit"), + "print": MessageLookupByLibrary.simpleMessage("Print"), + "prints": MessageLookupByLibrary.simpleMessage("Prints"), + "problem_id": MessageLookupByLibrary.simpleMessage( + "Brief identification of the problem"), + "program": MessageLookupByLibrary.simpleMessage("Program"), + "reference_sigarra_help": MessageLookupByLibrary.simpleMessage( + "The generated reference data will appear in Sigarra, checking account.\nProfile > Checking Account"), + "reference_success": MessageLookupByLibrary.simpleMessage( + "Reference created successfully!"), + "remove": MessageLookupByLibrary.simpleMessage("Delete"), + "report_error": MessageLookupByLibrary.simpleMessage("Report error"), + "report_error_suggestion": + MessageLookupByLibrary.simpleMessage("Report error/suggestion"), + "restaurant_main_page": MessageLookupByLibrary.simpleMessage( + "Do you want to see your favorite restaurants in the main page?"), + "room": MessageLookupByLibrary.simpleMessage("Room"), + "school_calendar": + MessageLookupByLibrary.simpleMessage("School Calendar"), + "search": MessageLookupByLibrary.simpleMessage("Search"), + "semester": MessageLookupByLibrary.simpleMessage("Semester"), + "send": MessageLookupByLibrary.simpleMessage("Send"), + "sent_error": MessageLookupByLibrary.simpleMessage( + "An error occurred in sending"), + "settings": MessageLookupByLibrary.simpleMessage("Settings"), + "snackbar": MessageLookupByLibrary.simpleMessage("Snackbar"), + "some_error": MessageLookupByLibrary.simpleMessage("Some error!"), + "stcp_stops": + MessageLookupByLibrary.simpleMessage("STCP - Upcoming Trips"), + "student_number": + MessageLookupByLibrary.simpleMessage("Student Number"), + "success": MessageLookupByLibrary.simpleMessage("Sent with success"), + "successful_open": + MessageLookupByLibrary.simpleMessage("File opened successfully"), + "tele_assistance": + MessageLookupByLibrary.simpleMessage("Telephone assistance"), + "tele_personal_assistance": MessageLookupByLibrary.simpleMessage( + "Face-to-face and telephone assistance"), + "telephone": MessageLookupByLibrary.simpleMessage("Telephone"), + "terms": MessageLookupByLibrary.simpleMessage("Terms and Conditions"), + "theme": MessageLookupByLibrary.simpleMessage("Theme"), + "title": MessageLookupByLibrary.simpleMessage("Title"), + "try_again": MessageLookupByLibrary.simpleMessage("Try again"), + "try_different_login": + MessageLookupByLibrary.simpleMessage("Having trouble signing in?"), + "uc_info": MessageLookupByLibrary.simpleMessage("Open UC page"), + "unavailable": MessageLookupByLibrary.simpleMessage("Unavailable"), + "valid_email": + MessageLookupByLibrary.simpleMessage("Please enter a valid email"), + "widget_prompt": MessageLookupByLibrary.simpleMessage( + "Choose a widget to add to your personal area:"), + "wrong_credentials_exception": + MessageLookupByLibrary.simpleMessage("Invalid credentials"), + "year": MessageLookupByLibrary.simpleMessage("Year"), + "yes": MessageLookupByLibrary.simpleMessage("Yes") + }; } diff --git a/packages/uni_app/lib/generated/intl/messages_pt_PT.dart b/packages/uni_app/lib/generated/intl/messages_pt_PT.dart index 8319b62a4..a30f27832 100644 --- a/packages/uni_app/lib/generated/intl/messages_pt_PT.dart +++ b/packages/uni_app/lib/generated/intl/messages_pt_PT.dart @@ -21,190 +21,305 @@ class MessageLookup extends MessageLookupByLibrary { static m0(time) => "última atualização às ${time}"; - static m1(time) => "${Intl.plural(time, zero: 'Atualizado há ${time} minutos', one: 'Atualizado há ${time} minuto', other: 'Atualizado há ${time} minutos')}"; + static m1(time) => + "${Intl.plural(time, zero: 'Atualizado há ${time} minutos', one: 'Atualizado há ${time} minuto', other: 'Atualizado há ${time} minutos')}"; static m2(number) => "+${number} mais"; - static m3(title) => "${Intl.select(title, {'horario': 'Horário', 'exames': 'Exames', 'area': 'Área Pessoal', 'cadeiras': 'Cadeiras', 'autocarros': 'Autocarros', 'locais': 'Locais', 'restaurantes': 'Restaurantes', 'calendario': 'Calendário', 'biblioteca': 'Biblioteca', 'percurso_academico': 'Percurso Académico', 'transportes': 'Transportes', 'faculdade': 'Faculdade', 'other': 'Outros', })}"; + static m3(title) => "${Intl.select(title, { + 'horario': 'Horário', + 'exames': 'Exames', + 'area': 'Área Pessoal', + 'cadeiras': 'Cadeiras', + 'autocarros': 'Autocarros', + 'locais': 'Locais', + 'restaurantes': 'Restaurantes', + 'calendario': 'Calendário', + 'biblioteca': 'Biblioteca', + 'percurso_academico': 'Percurso Académico', + 'transportes': 'Transportes', + 'faculdade': 'Faculdade', + 'other': 'Outros', + })}"; final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "about" : MessageLookupByLibrary.simpleMessage("Sobre nós"), - "academic_services" : MessageLookupByLibrary.simpleMessage("Serviços académicos"), - "account_card_title" : MessageLookupByLibrary.simpleMessage("Conta Corrente"), - "add" : MessageLookupByLibrary.simpleMessage("Adicionar"), - "add_quota" : MessageLookupByLibrary.simpleMessage("Adicionar quota"), - "add_widget" : MessageLookupByLibrary.simpleMessage("Adicionar widget"), - "agree_terms" : MessageLookupByLibrary.simpleMessage("Ao entrares confirmas que concordas com estes"), - "all_widgets_added" : MessageLookupByLibrary.simpleMessage("Todos os widgets disponíveis já foram adicionados à tua área pessoal!"), - "assessments" : MessageLookupByLibrary.simpleMessage("Avaliações"), - "at_least_one_college" : MessageLookupByLibrary.simpleMessage("Seleciona pelo menos uma faculdade"), - "available_amount" : MessageLookupByLibrary.simpleMessage("Valor disponível"), - "average" : MessageLookupByLibrary.simpleMessage("Média: "), - "balance" : MessageLookupByLibrary.simpleMessage("Saldo:"), - "banner_info" : MessageLookupByLibrary.simpleMessage("Agora recolhemos estatísticas de uso anónimas para melhorar a tua experiência. Podes alterá-lo nas definições."), - "bibliography" : MessageLookupByLibrary.simpleMessage("Bibliografia"), - "breakfast" : MessageLookupByLibrary.simpleMessage("Pequeno Almoço"), - "bs_description" : MessageLookupByLibrary.simpleMessage("Encontraste algum bug na aplicação?\nTens alguma sugestão para a app?\nConta-nos para que possamos melhorar!"), - "bug_description" : MessageLookupByLibrary.simpleMessage("Bug encontrado, como o reproduzir, etc"), - "bus_error" : MessageLookupByLibrary.simpleMessage("Não foi possível obter informação"), - "bus_information" : MessageLookupByLibrary.simpleMessage("Seleciona os autocarros dos quais queres informação:"), - "buses_personalize" : MessageLookupByLibrary.simpleMessage("Configura aqui os teus autocarros"), - "buses_text" : MessageLookupByLibrary.simpleMessage("Os autocarros favoritos serão apresentados no widget \'Autocarros\' dos favoritos. Os restantes serão apresentados apenas na página."), - "cancel" : MessageLookupByLibrary.simpleMessage("Cancelar"), - "change" : MessageLookupByLibrary.simpleMessage("Alterar"), - "change_prompt" : MessageLookupByLibrary.simpleMessage("Deseja alterar a palavra-passe?"), - "check_internet" : MessageLookupByLibrary.simpleMessage("Verifica a tua ligação à internet"), - "class_registration" : MessageLookupByLibrary.simpleMessage("Inscrição de Turmas"), - "collect_usage_stats" : MessageLookupByLibrary.simpleMessage("Partilhar estatísticas de uso"), - "college" : MessageLookupByLibrary.simpleMessage("Faculdade: "), - "college_select" : MessageLookupByLibrary.simpleMessage("seleciona a(s) tua(s) faculdade(s)"), - "conclude" : MessageLookupByLibrary.simpleMessage("Concluído"), - "configured_buses" : MessageLookupByLibrary.simpleMessage("Autocarros Configurados"), - "confirm" : MessageLookupByLibrary.simpleMessage("Confirmar"), - "confirm_logout" : MessageLookupByLibrary.simpleMessage("Tens a certeza de que queres terminar sessão? Os teus dados locais serão apagados e terás de iniciar sessão novamente."), - "consent" : MessageLookupByLibrary.simpleMessage("Consinto que esta informação seja revista pelo NIAEFEUP, podendo ser eliminada a meu pedido."), - "contact" : MessageLookupByLibrary.simpleMessage("Contacto (opcional)"), - "copy_center" : MessageLookupByLibrary.simpleMessage("Centro de cópias"), - "copy_center_building" : MessageLookupByLibrary.simpleMessage("Piso -1 do edifício B | Edifício da AEFEUP"), - "courseRegent" : MessageLookupByLibrary.simpleMessage("Regente da Cadeira"), - "course_class" : MessageLookupByLibrary.simpleMessage("Turmas"), - "course_info" : MessageLookupByLibrary.simpleMessage("Ficha"), - "courses" : MessageLookupByLibrary.simpleMessage("Cursos"), - "current_state" : MessageLookupByLibrary.simpleMessage("Estado atual: "), - "current_year" : MessageLookupByLibrary.simpleMessage("Ano curricular atual: "), - "decrement" : MessageLookupByLibrary.simpleMessage("Decrementar 1,00€"), - "description" : MessageLookupByLibrary.simpleMessage("Descrição"), - "desired_email" : MessageLookupByLibrary.simpleMessage("Email em que desejas ser contactado"), - "dinner" : MessageLookupByLibrary.simpleMessage("Jantar"), - "dona_bia" : MessageLookupByLibrary.simpleMessage("Papelaria D. Beatriz"), - "dona_bia_building" : MessageLookupByLibrary.simpleMessage("Piso -1 do edifício B (B-142)"), - "download_error" : MessageLookupByLibrary.simpleMessage("Erro ao descarregar o ficheiro"), - "ects" : MessageLookupByLibrary.simpleMessage("ECTS realizados: "), - "edit_off" : MessageLookupByLibrary.simpleMessage("Editar"), - "edit_on" : MessageLookupByLibrary.simpleMessage("Concluir edição"), - "empty_text" : MessageLookupByLibrary.simpleMessage("Por favor preenche este campo"), - "evaluation" : MessageLookupByLibrary.simpleMessage("Avaliação"), - "exams" : MessageLookupByLibrary.simpleMessage("Exames"), - "exams_filter" : MessageLookupByLibrary.simpleMessage("Definições Filtro de Exames"), - "exit_confirm" : MessageLookupByLibrary.simpleMessage("Tem a certeza de que pretende sair?"), - "expired_password" : MessageLookupByLibrary.simpleMessage("A tua palavra-passe expirou"), - "fail_to_authenticate" : MessageLookupByLibrary.simpleMessage("Falha ao autenticar"), - "failed_login" : MessageLookupByLibrary.simpleMessage("O login falhou"), - "fee_date" : MessageLookupByLibrary.simpleMessage("Data limite próxima prestação:"), - "fee_notification" : MessageLookupByLibrary.simpleMessage("Data limite de propina"), - "files" : MessageLookupByLibrary.simpleMessage("Ficheiros"), - "first_year_registration" : MessageLookupByLibrary.simpleMessage("Ano da primeira inscrição: "), - "floor" : MessageLookupByLibrary.simpleMessage("Piso"), - "floors" : MessageLookupByLibrary.simpleMessage("Pisos"), - "forgot_password" : MessageLookupByLibrary.simpleMessage("Esqueceu a palavra-passe?"), - "frequency" : MessageLookupByLibrary.simpleMessage("Obtenção de Frequência"), - "generate_reference" : MessageLookupByLibrary.simpleMessage("Gerar referência"), - "geral_registration" : MessageLookupByLibrary.simpleMessage("Inscrição Geral"), - "improvement_registration" : MessageLookupByLibrary.simpleMessage("Inscrição para Melhoria"), - "increment" : MessageLookupByLibrary.simpleMessage("Incrementar 1,00€"), - "instructor" : MessageLookupByLibrary.simpleMessage("Docente"), - "instructors" : MessageLookupByLibrary.simpleMessage("Docentes"), - "internet_status_exception" : MessageLookupByLibrary.simpleMessage("Verifique sua conexão com a internet"), - "invalid_credentials" : MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), - "keep_login" : MessageLookupByLibrary.simpleMessage("Lembre-se de mim"), - "language" : MessageLookupByLibrary.simpleMessage("Idioma"), - "last_refresh_time" : m0, - "last_timestamp" : m1, - "lectures" : MessageLookupByLibrary.simpleMessage("Aulas"), - "library_occupation" : MessageLookupByLibrary.simpleMessage("Ocupação da Biblioteca"), - "load_error" : MessageLookupByLibrary.simpleMessage("Erro ao carregar a informação"), - "loading_terms" : MessageLookupByLibrary.simpleMessage("Carregando os Termos e Condições..."), - "login" : MessageLookupByLibrary.simpleMessage("Entrar"), - "login_with_credentials" : MessageLookupByLibrary.simpleMessage("Entrar com credenciais"), - "logout" : MessageLookupByLibrary.simpleMessage("Terminar sessão"), - "lunch" : MessageLookupByLibrary.simpleMessage("Almoço"), - "menus" : MessageLookupByLibrary.simpleMessage("Ementas"), - "min_value_reference" : MessageLookupByLibrary.simpleMessage("Valor mínimo: 1,00 €"), - "moreInstructors" : m2, - "multimedia_center" : MessageLookupByLibrary.simpleMessage("Centro de multimédia"), - "nav_title" : m3, - "news" : MessageLookupByLibrary.simpleMessage("Notícias"), - "no" : MessageLookupByLibrary.simpleMessage("Não"), - "noExamsScheduled" : MessageLookupByLibrary.simpleMessage("Não há exames agendados"), - "no_app" : MessageLookupByLibrary.simpleMessage("Nenhuma aplicação encontrada para abrir o ficheiro"), - "no_bus" : MessageLookupByLibrary.simpleMessage("Não percas nenhum autocarro!"), - "no_bus_stops" : MessageLookupByLibrary.simpleMessage("Não existe nenhuma paragem configurada"), - "no_class" : MessageLookupByLibrary.simpleMessage("Não existem turmas para apresentar"), - "no_classes" : MessageLookupByLibrary.simpleMessage("Não existem aulas para apresentar"), - "no_classes_on" : MessageLookupByLibrary.simpleMessage("Não possui aulas à"), - "no_classes_on_weekend" : MessageLookupByLibrary.simpleMessage("Não possui aulas ao"), - "no_college" : MessageLookupByLibrary.simpleMessage("sem faculdade"), - "no_course_units" : MessageLookupByLibrary.simpleMessage("Sem cadeiras no período selecionado"), - "no_data" : MessageLookupByLibrary.simpleMessage("Não há dados a mostrar neste momento"), - "no_date" : MessageLookupByLibrary.simpleMessage("Sem data"), - "no_events" : MessageLookupByLibrary.simpleMessage("Nenhum evento encontrado"), - "no_exams" : MessageLookupByLibrary.simpleMessage("Não possui exames marcados"), - "no_exams_label" : MessageLookupByLibrary.simpleMessage("Parece que estás de férias!"), - "no_favorite_restaurants" : MessageLookupByLibrary.simpleMessage("Sem restaurantes favoritos"), - "no_files_found" : MessageLookupByLibrary.simpleMessage("Nenhum ficheiro encontrado"), - "no_info" : MessageLookupByLibrary.simpleMessage("Não existem informações para apresentar"), - "no_internet" : MessageLookupByLibrary.simpleMessage("Parece que estás offline"), - "no_library_info" : MessageLookupByLibrary.simpleMessage("Sem informação de ocupação"), - "no_link" : MessageLookupByLibrary.simpleMessage("Não conseguimos abrir o link"), - "no_menu_info" : MessageLookupByLibrary.simpleMessage("Não há informação disponível sobre refeições"), - "no_menus" : MessageLookupByLibrary.simpleMessage("Não há refeições disponíveis"), - "no_name_course" : MessageLookupByLibrary.simpleMessage("Curso sem nome"), - "no_places_info" : MessageLookupByLibrary.simpleMessage("Não há informação disponível sobre locais"), - "no_print_info" : MessageLookupByLibrary.simpleMessage("Sem informação de saldo"), - "no_references" : MessageLookupByLibrary.simpleMessage("Não existem referências a pagar"), - "no_results" : MessageLookupByLibrary.simpleMessage("Sem resultados"), - "no_selected_courses" : MessageLookupByLibrary.simpleMessage("Não existem cadeiras para apresentar"), - "no_selected_exams" : MessageLookupByLibrary.simpleMessage("Não existem exames para apresentar"), - "no_trips" : MessageLookupByLibrary.simpleMessage("Não há viagens planeadas de momento"), - "notifications" : MessageLookupByLibrary.simpleMessage("Notificações"), - "occurrence_type" : MessageLookupByLibrary.simpleMessage("Tipo de ocorrência"), - "of_month" : MessageLookupByLibrary.simpleMessage("de"), - "open_error" : MessageLookupByLibrary.simpleMessage("Erro ao abrir o ficheiro"), - "other_links" : MessageLookupByLibrary.simpleMessage("Outros links"), - "pass_change_request" : MessageLookupByLibrary.simpleMessage("Por razões de segurança, as palavras-passe têm de ser alteradas periodicamente."), - "password" : MessageLookupByLibrary.simpleMessage("Palavra-passe"), - "pendent_references" : MessageLookupByLibrary.simpleMessage("Referências pendentes"), - "permission_denied" : MessageLookupByLibrary.simpleMessage("Sem permissão"), - "personal_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento presencial"), - "press_again" : MessageLookupByLibrary.simpleMessage("Pressione novamente para sair"), - "print" : MessageLookupByLibrary.simpleMessage("Impressão"), - "prints" : MessageLookupByLibrary.simpleMessage("Impressões"), - "problem_id" : MessageLookupByLibrary.simpleMessage("Breve identificação do problema"), - "program" : MessageLookupByLibrary.simpleMessage("Programa"), - "reference_sigarra_help" : MessageLookupByLibrary.simpleMessage("Os dados da referência gerada aparecerão no Sigarra, conta corrente. Perfil > Conta Corrente"), - "reference_success" : MessageLookupByLibrary.simpleMessage("Referência criada com sucesso!"), - "remove" : MessageLookupByLibrary.simpleMessage("Remover"), - "report_error" : MessageLookupByLibrary.simpleMessage("Reportar erro"), - "report_error_suggestion" : MessageLookupByLibrary.simpleMessage("Reportar erro/sugestão"), - "restaurant_main_page" : MessageLookupByLibrary.simpleMessage("Queres ver os teus restaurantes favoritos na página principal?"), - "room" : MessageLookupByLibrary.simpleMessage("Sala"), - "school_calendar" : MessageLookupByLibrary.simpleMessage("Calendário Escolar"), - "search" : MessageLookupByLibrary.simpleMessage("Pesquisar"), - "semester" : MessageLookupByLibrary.simpleMessage("Semestre"), - "send" : MessageLookupByLibrary.simpleMessage("Enviar"), - "sent_error" : MessageLookupByLibrary.simpleMessage("Ocorreu um erro no envio"), - "settings" : MessageLookupByLibrary.simpleMessage("Definições"), - "snackbar" : MessageLookupByLibrary.simpleMessage("Snackbar"), - "some_error" : MessageLookupByLibrary.simpleMessage("Algum erro!"), - "stcp_stops" : MessageLookupByLibrary.simpleMessage("STCP - Próximas Viagens"), - "student_number" : MessageLookupByLibrary.simpleMessage("Número de Estudante"), - "success" : MessageLookupByLibrary.simpleMessage("Enviado com sucesso"), - "successful_open" : MessageLookupByLibrary.simpleMessage("Ficheiro aberto com sucesso"), - "tele_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento telefónico"), - "tele_personal_assistance" : MessageLookupByLibrary.simpleMessage("Atendimento presencial e telefónico"), - "telephone" : MessageLookupByLibrary.simpleMessage("Telefone"), - "terms" : MessageLookupByLibrary.simpleMessage("Termos e Condições"), - "theme" : MessageLookupByLibrary.simpleMessage("Tema"), - "title" : MessageLookupByLibrary.simpleMessage("Título"), - "try_again" : MessageLookupByLibrary.simpleMessage("Tentar de novo"), - "try_different_login" : MessageLookupByLibrary.simpleMessage("Problemas ao iniciar sessão?"), - "uc_info" : MessageLookupByLibrary.simpleMessage("Abrir página da UC"), - "unavailable" : MessageLookupByLibrary.simpleMessage("Indisponível"), - "valid_email" : MessageLookupByLibrary.simpleMessage("Por favor insere um email válido"), - "widget_prompt" : MessageLookupByLibrary.simpleMessage("Escolhe um widget para adicionares à tua área pessoal:"), - "wrong_credentials_exception" : MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), - "year" : MessageLookupByLibrary.simpleMessage("Ano"), - "yes" : MessageLookupByLibrary.simpleMessage("Sim") - }; + static _notInlinedMessages(_) => { + "about": MessageLookupByLibrary.simpleMessage("Sobre nós"), + "academic_services": + MessageLookupByLibrary.simpleMessage("Serviços académicos"), + "account_card_title": + MessageLookupByLibrary.simpleMessage("Conta Corrente"), + "add": MessageLookupByLibrary.simpleMessage("Adicionar"), + "add_quota": MessageLookupByLibrary.simpleMessage("Adicionar quota"), + "add_widget": MessageLookupByLibrary.simpleMessage("Adicionar widget"), + "agree_terms": MessageLookupByLibrary.simpleMessage( + "Ao entrares confirmas que concordas com estes"), + "all_widgets_added": MessageLookupByLibrary.simpleMessage( + "Todos os widgets disponíveis já foram adicionados à tua área pessoal!"), + "assessments": MessageLookupByLibrary.simpleMessage("Avaliações"), + "at_least_one_college": MessageLookupByLibrary.simpleMessage( + "Seleciona pelo menos uma faculdade"), + "available_amount": + MessageLookupByLibrary.simpleMessage("Valor disponível"), + "average": MessageLookupByLibrary.simpleMessage("Média: "), + "balance": MessageLookupByLibrary.simpleMessage("Saldo:"), + "banner_info": MessageLookupByLibrary.simpleMessage( + "Agora recolhemos estatísticas de uso anónimas para melhorar a tua experiência. Podes alterá-lo nas definições."), + "bibliography": MessageLookupByLibrary.simpleMessage("Bibliografia"), + "breakfast": MessageLookupByLibrary.simpleMessage("Pequeno Almoço"), + "bs_description": MessageLookupByLibrary.simpleMessage( + "Encontraste algum bug na aplicação?\nTens alguma sugestão para a app?\nConta-nos para que possamos melhorar!"), + "bug_description": MessageLookupByLibrary.simpleMessage( + "Bug encontrado, como o reproduzir, etc"), + "bus_error": MessageLookupByLibrary.simpleMessage( + "Não foi possível obter informação"), + "bus_information": MessageLookupByLibrary.simpleMessage( + "Seleciona os autocarros dos quais queres informação:"), + "buses_personalize": MessageLookupByLibrary.simpleMessage( + "Configura aqui os teus autocarros"), + "buses_text": MessageLookupByLibrary.simpleMessage( + "Os autocarros favoritos serão apresentados no widget \'Autocarros\' dos favoritos. Os restantes serão apresentados apenas na página."), + "cancel": MessageLookupByLibrary.simpleMessage("Cancelar"), + "change": MessageLookupByLibrary.simpleMessage("Alterar"), + "change_prompt": MessageLookupByLibrary.simpleMessage( + "Deseja alterar a palavra-passe?"), + "check_internet": MessageLookupByLibrary.simpleMessage( + "Verifica a tua ligação à internet"), + "class_registration": + MessageLookupByLibrary.simpleMessage("Inscrição de Turmas"), + "collect_usage_stats": MessageLookupByLibrary.simpleMessage( + "Partilhar estatísticas de uso"), + "college": MessageLookupByLibrary.simpleMessage("Faculdade: "), + "college_select": MessageLookupByLibrary.simpleMessage( + "seleciona a(s) tua(s) faculdade(s)"), + "conclude": MessageLookupByLibrary.simpleMessage("Concluído"), + "configured_buses": + MessageLookupByLibrary.simpleMessage("Autocarros Configurados"), + "confirm": MessageLookupByLibrary.simpleMessage("Confirmar"), + "confirm_logout": MessageLookupByLibrary.simpleMessage( + "Tens a certeza de que queres terminar sessão? Os teus dados locais serão apagados e terás de iniciar sessão novamente."), + "consent": MessageLookupByLibrary.simpleMessage( + "Consinto que esta informação seja revista pelo NIAEFEUP, podendo ser eliminada a meu pedido."), + "contact": MessageLookupByLibrary.simpleMessage("Contacto (opcional)"), + "copy_center": MessageLookupByLibrary.simpleMessage("Centro de cópias"), + "copy_center_building": MessageLookupByLibrary.simpleMessage( + "Piso -1 do edifício B | Edifício da AEFEUP"), + "courseRegent": + MessageLookupByLibrary.simpleMessage("Regente da Cadeira"), + "course_class": MessageLookupByLibrary.simpleMessage("Turmas"), + "course_info": MessageLookupByLibrary.simpleMessage("Ficha"), + "courses": MessageLookupByLibrary.simpleMessage("Cursos"), + "current_state": MessageLookupByLibrary.simpleMessage("Estado atual: "), + "current_year": + MessageLookupByLibrary.simpleMessage("Ano curricular atual: "), + "decrement": MessageLookupByLibrary.simpleMessage("Decrementar 1,00€"), + "description": MessageLookupByLibrary.simpleMessage("Descrição"), + "desired_email": MessageLookupByLibrary.simpleMessage( + "Email em que desejas ser contactado"), + "dinner": MessageLookupByLibrary.simpleMessage("Jantar"), + "dona_bia": + MessageLookupByLibrary.simpleMessage("Papelaria D. Beatriz"), + "dona_bia_building": MessageLookupByLibrary.simpleMessage( + "Piso -1 do edifício B (B-142)"), + "download_error": MessageLookupByLibrary.simpleMessage( + "Erro ao descarregar o ficheiro"), + "ects": MessageLookupByLibrary.simpleMessage("ECTS realizados: "), + "edit_off": MessageLookupByLibrary.simpleMessage("Editar"), + "edit_on": MessageLookupByLibrary.simpleMessage("Concluir edição"), + "empty_text": MessageLookupByLibrary.simpleMessage( + "Por favor preenche este campo"), + "evaluation": MessageLookupByLibrary.simpleMessage("Avaliação"), + "exams": MessageLookupByLibrary.simpleMessage("Exames"), + "exams_filter": + MessageLookupByLibrary.simpleMessage("Definições Filtro de Exames"), + "exit_confirm": MessageLookupByLibrary.simpleMessage( + "Tem a certeza de que pretende sair?"), + "expired_password": + MessageLookupByLibrary.simpleMessage("A tua palavra-passe expirou"), + "fail_to_authenticate": + MessageLookupByLibrary.simpleMessage("Falha ao autenticar"), + "failed_login": MessageLookupByLibrary.simpleMessage("O login falhou"), + "fee_date": MessageLookupByLibrary.simpleMessage( + "Data limite próxima prestação:"), + "fee_notification": + MessageLookupByLibrary.simpleMessage("Data limite de propina"), + "files": MessageLookupByLibrary.simpleMessage("Ficheiros"), + "first_year_registration": + MessageLookupByLibrary.simpleMessage("Ano da primeira inscrição: "), + "floor": MessageLookupByLibrary.simpleMessage("Piso"), + "floors": MessageLookupByLibrary.simpleMessage("Pisos"), + "forgot_password": + MessageLookupByLibrary.simpleMessage("Esqueceu a palavra-passe?"), + "frequency": + MessageLookupByLibrary.simpleMessage("Obtenção de Frequência"), + "generate_reference": + MessageLookupByLibrary.simpleMessage("Gerar referência"), + "geral_registration": + MessageLookupByLibrary.simpleMessage("Inscrição Geral"), + "improvement_registration": + MessageLookupByLibrary.simpleMessage("Inscrição para Melhoria"), + "increment": MessageLookupByLibrary.simpleMessage("Incrementar 1,00€"), + "instructor": MessageLookupByLibrary.simpleMessage("Docente"), + "instructors": MessageLookupByLibrary.simpleMessage("Docentes"), + "internet_status_exception": MessageLookupByLibrary.simpleMessage( + "Verifique sua conexão com a internet"), + "invalid_credentials": + MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), + "keep_login": MessageLookupByLibrary.simpleMessage("Lembre-se de mim"), + "language": MessageLookupByLibrary.simpleMessage("Idioma"), + "last_refresh_time": m0, + "last_timestamp": m1, + "lectures": MessageLookupByLibrary.simpleMessage("Aulas"), + "library_occupation": + MessageLookupByLibrary.simpleMessage("Ocupação da Biblioteca"), + "load_error": MessageLookupByLibrary.simpleMessage( + "Erro ao carregar a informação"), + "loading_terms": MessageLookupByLibrary.simpleMessage( + "Carregando os Termos e Condições..."), + "login": MessageLookupByLibrary.simpleMessage("Entrar"), + "login_with_credentials": + MessageLookupByLibrary.simpleMessage("Entrar com credenciais"), + "logout": MessageLookupByLibrary.simpleMessage("Terminar sessão"), + "lunch": MessageLookupByLibrary.simpleMessage("Almoço"), + "menus": MessageLookupByLibrary.simpleMessage("Ementas"), + "min_value_reference": + MessageLookupByLibrary.simpleMessage("Valor mínimo: 1,00 €"), + "moreInstructors": m2, + "multimedia_center": + MessageLookupByLibrary.simpleMessage("Centro de multimédia"), + "nav_title": m3, + "news": MessageLookupByLibrary.simpleMessage("Notícias"), + "no": MessageLookupByLibrary.simpleMessage("Não"), + "noExamsScheduled": + MessageLookupByLibrary.simpleMessage("Não há exames agendados"), + "no_app": MessageLookupByLibrary.simpleMessage( + "Nenhuma aplicação encontrada para abrir o ficheiro"), + "no_bus": MessageLookupByLibrary.simpleMessage( + "Não percas nenhum autocarro!"), + "no_bus_stops": MessageLookupByLibrary.simpleMessage( + "Não existe nenhuma paragem configurada"), + "no_class": MessageLookupByLibrary.simpleMessage( + "Não existem turmas para apresentar"), + "no_classes": MessageLookupByLibrary.simpleMessage( + "Não existem aulas para apresentar"), + "no_classes_on": + MessageLookupByLibrary.simpleMessage("Não possui aulas à"), + "no_classes_on_weekend": + MessageLookupByLibrary.simpleMessage("Não possui aulas ao"), + "no_college": MessageLookupByLibrary.simpleMessage("sem faculdade"), + "no_course_units": MessageLookupByLibrary.simpleMessage( + "Sem cadeiras no período selecionado"), + "no_data": MessageLookupByLibrary.simpleMessage( + "Não há dados a mostrar neste momento"), + "no_date": MessageLookupByLibrary.simpleMessage("Sem data"), + "no_events": + MessageLookupByLibrary.simpleMessage("Nenhum evento encontrado"), + "no_exams": + MessageLookupByLibrary.simpleMessage("Não possui exames marcados"), + "no_exams_label": + MessageLookupByLibrary.simpleMessage("Parece que estás de férias!"), + "no_favorite_restaurants": + MessageLookupByLibrary.simpleMessage("Sem restaurantes favoritos"), + "no_files_found": + MessageLookupByLibrary.simpleMessage("Nenhum ficheiro encontrado"), + "no_info": MessageLookupByLibrary.simpleMessage( + "Não existem informações para apresentar"), + "no_internet": + MessageLookupByLibrary.simpleMessage("Parece que estás offline"), + "no_library_info": + MessageLookupByLibrary.simpleMessage("Sem informação de ocupação"), + "no_link": MessageLookupByLibrary.simpleMessage( + "Não conseguimos abrir o link"), + "no_menu_info": MessageLookupByLibrary.simpleMessage( + "Não há informação disponível sobre refeições"), + "no_menus": MessageLookupByLibrary.simpleMessage( + "Não há refeições disponíveis"), + "no_name_course": + MessageLookupByLibrary.simpleMessage("Curso sem nome"), + "no_places_info": MessageLookupByLibrary.simpleMessage( + "Não há informação disponível sobre locais"), + "no_print_info": + MessageLookupByLibrary.simpleMessage("Sem informação de saldo"), + "no_references": MessageLookupByLibrary.simpleMessage( + "Não existem referências a pagar"), + "no_results": MessageLookupByLibrary.simpleMessage("Sem resultados"), + "no_selected_courses": MessageLookupByLibrary.simpleMessage( + "Não existem cadeiras para apresentar"), + "no_selected_exams": MessageLookupByLibrary.simpleMessage( + "Não existem exames para apresentar"), + "no_trips": MessageLookupByLibrary.simpleMessage( + "Não há viagens planeadas de momento"), + "notifications": MessageLookupByLibrary.simpleMessage("Notificações"), + "occurrence_type": + MessageLookupByLibrary.simpleMessage("Tipo de ocorrência"), + "of_month": MessageLookupByLibrary.simpleMessage("de"), + "open_error": + MessageLookupByLibrary.simpleMessage("Erro ao abrir o ficheiro"), + "other_links": MessageLookupByLibrary.simpleMessage("Outros links"), + "pass_change_request": MessageLookupByLibrary.simpleMessage( + "Por razões de segurança, as palavras-passe têm de ser alteradas periodicamente."), + "password": MessageLookupByLibrary.simpleMessage("Palavra-passe"), + "pendent_references": + MessageLookupByLibrary.simpleMessage("Referências pendentes"), + "permission_denied": + MessageLookupByLibrary.simpleMessage("Sem permissão"), + "personal_assistance": + MessageLookupByLibrary.simpleMessage("Atendimento presencial"), + "press_again": MessageLookupByLibrary.simpleMessage( + "Pressione novamente para sair"), + "print": MessageLookupByLibrary.simpleMessage("Impressão"), + "prints": MessageLookupByLibrary.simpleMessage("Impressões"), + "problem_id": MessageLookupByLibrary.simpleMessage( + "Breve identificação do problema"), + "program": MessageLookupByLibrary.simpleMessage("Programa"), + "reference_sigarra_help": MessageLookupByLibrary.simpleMessage( + "Os dados da referência gerada aparecerão no Sigarra, conta corrente. Perfil > Conta Corrente"), + "reference_success": MessageLookupByLibrary.simpleMessage( + "Referência criada com sucesso!"), + "remove": MessageLookupByLibrary.simpleMessage("Remover"), + "report_error": MessageLookupByLibrary.simpleMessage("Reportar erro"), + "report_error_suggestion": + MessageLookupByLibrary.simpleMessage("Reportar erro/sugestão"), + "restaurant_main_page": MessageLookupByLibrary.simpleMessage( + "Queres ver os teus restaurantes favoritos na página principal?"), + "room": MessageLookupByLibrary.simpleMessage("Sala"), + "school_calendar": + MessageLookupByLibrary.simpleMessage("Calendário Escolar"), + "search": MessageLookupByLibrary.simpleMessage("Pesquisar"), + "semester": MessageLookupByLibrary.simpleMessage("Semestre"), + "send": MessageLookupByLibrary.simpleMessage("Enviar"), + "sent_error": + MessageLookupByLibrary.simpleMessage("Ocorreu um erro no envio"), + "settings": MessageLookupByLibrary.simpleMessage("Definições"), + "snackbar": MessageLookupByLibrary.simpleMessage("Snackbar"), + "some_error": MessageLookupByLibrary.simpleMessage("Algum erro!"), + "stcp_stops": + MessageLookupByLibrary.simpleMessage("STCP - Próximas Viagens"), + "student_number": + MessageLookupByLibrary.simpleMessage("Número de Estudante"), + "success": MessageLookupByLibrary.simpleMessage("Enviado com sucesso"), + "successful_open": + MessageLookupByLibrary.simpleMessage("Ficheiro aberto com sucesso"), + "tele_assistance": + MessageLookupByLibrary.simpleMessage("Atendimento telefónico"), + "tele_personal_assistance": MessageLookupByLibrary.simpleMessage( + "Atendimento presencial e telefónico"), + "telephone": MessageLookupByLibrary.simpleMessage("Telefone"), + "terms": MessageLookupByLibrary.simpleMessage("Termos e Condições"), + "theme": MessageLookupByLibrary.simpleMessage("Tema"), + "title": MessageLookupByLibrary.simpleMessage("Título"), + "try_again": MessageLookupByLibrary.simpleMessage("Tentar de novo"), + "try_different_login": MessageLookupByLibrary.simpleMessage( + "Problemas ao iniciar sessão?"), + "uc_info": MessageLookupByLibrary.simpleMessage("Abrir página da UC"), + "unavailable": MessageLookupByLibrary.simpleMessage("Indisponível"), + "valid_email": MessageLookupByLibrary.simpleMessage( + "Por favor insere um email válido"), + "widget_prompt": MessageLookupByLibrary.simpleMessage( + "Escolhe um widget para adicionares à tua área pessoal:"), + "wrong_credentials_exception": + MessageLookupByLibrary.simpleMessage("Credenciais inválidas"), + "year": MessageLookupByLibrary.simpleMessage("Ano"), + "yes": MessageLookupByLibrary.simpleMessage("Sim") + }; } diff --git a/packages/uni_app/lib/generated/l10n.dart b/packages/uni_app/lib/generated/l10n.dart index afb4758ee..dd5232fe9 100644 --- a/packages/uni_app/lib/generated/l10n.dart +++ b/packages/uni_app/lib/generated/l10n.dart @@ -18,28 +18,31 @@ class S { static S? _current; static S get current { - assert(_current != null, 'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.'); + assert(_current != null, + 'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.'); return _current!; } - static const AppLocalizationDelegate delegate = - AppLocalizationDelegate(); + static const AppLocalizationDelegate delegate = AppLocalizationDelegate(); static Future load(Locale locale) { - final name = (locale.countryCode?.isEmpty ?? false) ? locale.languageCode : locale.toString(); - final localeName = Intl.canonicalizedLocale(name); + final name = (locale.countryCode?.isEmpty ?? false) + ? locale.languageCode + : locale.toString(); + final localeName = Intl.canonicalizedLocale(name); return initializeMessages(localeName).then((_) { Intl.defaultLocale = localeName; final instance = S(); S._current = instance; - + return instance; }); - } + } static S of(BuildContext context) { final instance = S.maybeOf(context); - assert(instance != null, 'No instance of S present in the widget tree. Did you add S.delegate in localizationsDelegates?'); + assert(instance != null, + 'No instance of S present in the widget tree. Did you add S.delegate in localizationsDelegates?'); return instance!; } @@ -1861,4 +1864,4 @@ class AppLocalizationDelegate extends LocalizationsDelegate { } return false; } -} \ No newline at end of file +} diff --git a/packages/uni_app/lib/model/entities/course_units/sheet.dart b/packages/uni_app/lib/model/entities/course_units/sheet.dart index 1fa0491bf..cabd920eb 100644 --- a/packages/uni_app/lib/model/entities/course_units/sheet.dart +++ b/packages/uni_app/lib/model/entities/course_units/sheet.dart @@ -22,14 +22,6 @@ class Book { String title; String isbn; - - @override - String toString() { - if (isbn.isEmpty) { - return 'Book(title: $title)'; - } - return 'Book(title: $title, isbn: $isbn)'; - } } class Professor { diff --git a/packages/uni_app/lib/view/academic_path/academic_path.dart b/packages/uni_app/lib/view/academic_path/academic_path.dart index e435e9c2b..1b491d258 100644 --- a/packages/uni_app/lib/view/academic_path/academic_path.dart +++ b/packages/uni_app/lib/view/academic_path/academic_path.dart @@ -2,10 +2,10 @@ import 'package:flutter/material.dart'; import 'package:uni/generated/l10n.dart'; import 'package:uni/utils/navigation_items.dart'; import 'package:uni/view/academic_path/exam_page.dart'; +import 'package:uni/view/academic_path/widgets/course_units_card.dart'; import 'package:uni/view/common_widgets/pages_layouts/general/general.dart'; import 'package:uni_ui/icons.dart'; import 'package:uni_ui/tabs/tab_icon.dart'; -import 'package:uni/view/academic_path/widgets/course_units_card.dart'; class AcademicPathPageView extends StatefulWidget { const AcademicPathPageView({super.key}); @@ -55,12 +55,12 @@ class AcademicPathPageViewState extends GeneralPageViewState return TabBarView( controller: tabController, children: [ - Center( + const Center( child: Text('To be implemented'), ), - ExamsPage(), + const ExamsPage(), Center( - child: CourseUnitsCard(), + child: CourseUnitsCard(), ), ], ); diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 007cd75a0..7400a4e2c 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -33,6 +33,7 @@ class CourseUnitDetailPageViewState Future loadInfo({required bool force}) async { final courseUnitsProvider = Provider.of(context, listen: false); + final examProvider = Provider.of(context, listen: false); final session = context.read().state!; final courseUnitSheet = @@ -62,7 +63,6 @@ class CourseUnitDetailPageViewState ); } - final examProvider = Provider.of(context, listen: false); courseUnitExams = examProvider.getExamsForCourseUnit(widget.courseUnit); } diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 7dfa97b30..72f0a4b2a 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -54,7 +54,10 @@ class CourseUnitSheetView extends StatelessWidget { if (exams.isEmpty) Padding( padding: const EdgeInsets.only(top: 8), - child: Text(S.of(context).noExamsScheduled, style: Theme.of(context).textTheme.bodyLarge), + child: Text( + S.of(context).noExamsScheduled, + style: Theme.of(context).textTheme.bodyLarge, + ), ) else SizedBox( diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart index 8721c679e..745270d93 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart @@ -1,6 +1,5 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:phosphor_flutter/phosphor_flutter.dart'; import 'package:provider/provider.dart'; import 'package:uni/model/entities/course_units/sheet.dart'; import 'package:uni/model/providers/startup/profile_provider.dart'; @@ -36,7 +35,7 @@ class ProfessorInfoModal extends StatelessWidget { const SizedBox(height: 10), Text( professor.name, - style: Theme.of(context).textTheme.headlineMedium, + style: Theme.of(context).textTheme.headlineLarge, ), const Opacity( opacity: 0.25, @@ -44,10 +43,9 @@ class ProfessorInfoModal extends StatelessWidget { ), Row( children: [ - PhosphorIcon( + UniIcon( UniIcons.email, color: Theme.of(context).colorScheme.primary, - duotoneSecondaryColor: Colors.red, size: 32, ), const Padding( @@ -57,12 +55,12 @@ class ProfessorInfoModal extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - 'Email: ', - style: Theme.of(context).textTheme.titleSmall, + 'Email', + style: Theme.of(context).textTheme.bodyLarge, ), Text( '[email-professor@domain.com]', - style: Theme.of(context).textTheme.bodySmall, + style: Theme.of(context).textTheme.bodyMedium, ), ], ), @@ -74,10 +72,9 @@ class ProfessorInfoModal extends StatelessWidget { ), Row( children: [ - PhosphorIcon( + UniIcon( UniIcons.location, color: Theme.of(context).colorScheme.primary, - duotoneSecondaryColor: Colors.red, size: 32, ), const Padding( @@ -87,12 +84,12 @@ class ProfessorInfoModal extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - 'Sala: ', - style: Theme.of(context).textTheme.titleSmall, + 'Sala ', + style: Theme.of(context).textTheme.bodyLarge, ), Text( '[sala]', - style: Theme.of(context).textTheme.bodySmall, + style: Theme.of(context).textTheme.bodyMedium, ), ], ), diff --git a/packages/uni_ui/lib/cards/restaurant_card.dart b/packages/uni_ui/lib/cards/restaurant_card.dart index eebf175a6..c828ef1c5 100644 --- a/packages/uni_ui/lib/cards/restaurant_card.dart +++ b/packages/uni_ui/lib/cards/restaurant_card.dart @@ -31,8 +31,7 @@ class RestaurantCard extends StatelessWidget { icon: icon, isFavorite: isFavorite, onFavoriteToggle: onFavoriteToggle), - Column( - children: menuItems), + Column(children: menuItems), ], )); } @@ -66,9 +65,7 @@ class RestaurantCardHeader extends StatelessWidget { ), child: Row( children: [ - Expanded( - flex: 1, - child: icon), + Expanded(flex: 1, child: icon), Expanded( flex: 4, child: Text( @@ -83,12 +80,12 @@ class RestaurantCardHeader extends StatelessWidget { onPressed: onFavoriteToggle, icon: isFavorite ? Icon(PhosphorIconsFill.heart, - color: Theme.of(context).primaryColor) + color: Theme.of(context).primaryColor) : Icon(PhosphorIconsRegular.heart, - color: Theme.of(context).primaryColor)), + color: Theme.of(context).primaryColor)), ), ], ), ); } -} \ No newline at end of file +} diff --git a/packages/uni_ui/lib/cards/widgets/restaurant_menu_item.dart b/packages/uni_ui/lib/cards/widgets/restaurant_menu_item.dart index 94ab43541..9a3458a54 100644 --- a/packages/uni_ui/lib/cards/widgets/restaurant_menu_item.dart +++ b/packages/uni_ui/lib/cards/widgets/restaurant_menu_item.dart @@ -1,10 +1,7 @@ import 'package:flutter/material.dart'; class RestaurantMenuItem extends StatelessWidget { - const RestaurantMenuItem({ - super.key, - required this.name, - required this.icon}); + const RestaurantMenuItem({super.key, required this.name, required this.icon}); final String name; final Icon icon; @@ -16,9 +13,7 @@ class RestaurantMenuItem extends StatelessWidget { child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Expanded( - flex: 1, - child: icon), + Expanded(flex: 1, child: icon), Expanded( flex: 5, child: Text( @@ -31,4 +26,4 @@ class RestaurantMenuItem extends StatelessWidget { ), ); } -} \ No newline at end of file +} From e07695fcd3ddbf595226284c5344fc4009141b49 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Wed, 8 Jan 2025 12:14:59 +0000 Subject: [PATCH 31/32] Corrected an error regarding the exams --- .../model/providers/lazy/exam_provider.dart | 7 ---- .../course_unit_info/course_unit_info.dart | 36 +++++++++++-------- .../widgets/course_unit_sheet.dart | 2 +- packages/uni_ui/lib/cards/exam_card.dart | 2 +- 4 files changed, 24 insertions(+), 23 deletions(-) diff --git a/packages/uni_app/lib/model/providers/lazy/exam_provider.dart b/packages/uni_app/lib/model/providers/lazy/exam_provider.dart index 6f30c7431..0f5ce3e93 100644 --- a/packages/uni_app/lib/model/providers/lazy/exam_provider.dart +++ b/packages/uni_app/lib/model/providers/lazy/exam_provider.dart @@ -47,11 +47,4 @@ class ExamProvider extends StateProviderNotifier> { await db.saveIfPersistentSession(exams); return exams; } - - List getExamsForCourseUnit(CourseUnit courseUnit) { - return state - ?.where((exam) => exam.subject == courseUnit.abbreviation) - .toList() ?? - []; - } } diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 7400a4e2c..263b0b7ab 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:uni/controller/parsers/parser_exams.dart'; import 'package:uni/generated/l10n.dart'; import 'package:uni/model/entities/course_units/course_unit.dart'; import 'package:uni/model/entities/exam.dart'; @@ -62,8 +63,6 @@ class CourseUnitDetailPageViewState session, ); } - - courseUnitExams = examProvider.getExamsForCourseUnit(widget.courseUnit); } @override @@ -116,19 +115,28 @@ class CourseUnitDetailPageViewState } Widget _courseUnitSheetView(BuildContext context) { - final sheet = context - .read() - .courseUnitsSheets[widget.courseUnit]; - if (sheet == null) { - return Center( - child: Text( - S.of(context).no_info, - textAlign: TextAlign.center, - ), - ); - } + return Consumer( + builder: (context, examProvider, child) { + final sheet = context + .read() + .courseUnitsSheets[widget.courseUnit]; + + if (sheet == null) { + return Center( + child: Text( + S.of(context).no_info, + textAlign: TextAlign.center, + ), + ); + } - return CourseUnitSheetView(sheet, courseUnitExams); + final courseExams = (examProvider.state ?? []) + .where((exam) => exam.subjectAcronym == widget.courseUnit.abbreviation) + .toList(); + + return CourseUnitSheetView(sheet, courseExams); + }, + ); } Widget _courseUnitFilesView(BuildContext context) { diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 72f0a4b2a..019a5fb46 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -211,7 +211,7 @@ class CourseUnitSheetView extends StatelessWidget { width: 240, child: ExamCard( name: exam.subject, - acronym: exam.subject, + acronym: exam.subjectAcronym, rooms: exam.rooms, type: exam.examType, startTime: exam.startTime, diff --git a/packages/uni_ui/lib/cards/exam_card.dart b/packages/uni_ui/lib/cards/exam_card.dart index b8b54ad75..91b13a4fd 100644 --- a/packages/uni_ui/lib/cards/exam_card.dart +++ b/packages/uni_ui/lib/cards/exam_card.dart @@ -92,7 +92,7 @@ class ExamCard extends StatelessWidget { const SizedBox(width: 4), Text( '$examDay $examMonth', - style: Theme.of(context).textTheme.bodyMedium!, + style: Theme.of(context).textTheme.labelSmall!, ), ], const SizedBox(width: 8), From 1ecda0e520ea30e377220cf3c3f1a42839faa832 Mon Sep 17 00:00:00 2001 From: Adriano Machado Date: Wed, 8 Jan 2025 22:49:33 +0000 Subject: [PATCH 32/32] Refactored course_unit_sheet --- .../parsers/parser_course_unit_info.dart | 20 +- .../lib/view/academic_path/academic_path.dart | 4 +- .../course_unit_info/course_unit_info.dart | 6 +- .../widgets/course_unit_sheet.dart | 369 ++++++++++-------- packages/uni_ui/lib/cards/exam_card.dart | 1 - 5 files changed, 216 insertions(+), 184 deletions(-) diff --git a/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart b/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart index 32a1c5368..f322eaf2d 100644 --- a/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart +++ b/packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart @@ -54,19 +54,19 @@ Future parseSheet(http.Response response) async { .toList(), ); - final regentsJson = (json['responsabilidades'] as List).map((element) { + final regents = (json['responsabilidades'] as List).map((element) { return Professor.fromJson(element as Map); }).toList(); - for (final regent in regentsJson) { - final existingProfessorIndex = - professors.indexWhere((professor) => professor.code == regent.code); - if (existingProfessorIndex != -1) { - professors[existingProfessorIndex].isRegent = true; - } else { - regent.isRegent = true; - professors.add(regent); - } + for (final regent in regents) { + professors.firstWhere( + (professor) => professor.code == regent.code, + orElse: () { + regent.isRegent = true; + professors.add(regent); + return regent; + }, + ).isRegent = true; } final books = (json['bibliografia'] as List? ?? []) diff --git a/packages/uni_app/lib/view/academic_path/academic_path.dart b/packages/uni_app/lib/view/academic_path/academic_path.dart index 1b491d258..ce621d367 100644 --- a/packages/uni_app/lib/view/academic_path/academic_path.dart +++ b/packages/uni_app/lib/view/academic_path/academic_path.dart @@ -59,9 +59,7 @@ class AcademicPathPageViewState extends GeneralPageViewState child: Text('To be implemented'), ), const ExamsPage(), - Center( - child: CourseUnitsCard(), - ), + CourseUnitsCard(), ], ); } diff --git a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart index 263b0b7ab..1177ec21e 100644 --- a/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart +++ b/packages/uni_app/lib/view/course_unit_info/course_unit_info.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:uni/controller/parsers/parser_exams.dart'; import 'package:uni/generated/l10n.dart'; import 'package:uni/model/entities/course_units/course_unit.dart'; import 'package:uni/model/entities/exam.dart'; @@ -34,7 +33,6 @@ class CourseUnitDetailPageViewState Future loadInfo({required bool force}) async { final courseUnitsProvider = Provider.of(context, listen: false); - final examProvider = Provider.of(context, listen: false); final session = context.read().state!; final courseUnitSheet = @@ -131,7 +129,9 @@ class CourseUnitDetailPageViewState } final courseExams = (examProvider.state ?? []) - .where((exam) => exam.subjectAcronym == widget.courseUnit.abbreviation) + .where( + (exam) => exam.subjectAcronym == widget.courseUnit.abbreviation, + ) .toList(); return CourseUnitSheetView(sheet, courseExams); diff --git a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart index 019a5fb46..e8064dc56 100644 --- a/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart +++ b/packages/uni_app/lib/view/course_unit_info/widgets/course_unit_sheet.dart @@ -17,72 +17,36 @@ import 'package:uni_ui/cards/exam_card.dart'; class CourseUnitSheetView extends StatelessWidget { const CourseUnitSheetView(this.courseUnitSheet, this.exams, {super.key}); + final Sheet courseUnitSheet; final List exams; @override Widget build(BuildContext context) { - return Container( - padding: const EdgeInsets.only(left: 20, right: 20), + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), child: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - S.of(context).instructors, - style: Theme.of(context).textTheme.headlineLarge, - ), - if (courseUnitSheet.professors.length <= 4) - _buildInstructorsRow(context, courseUnitSheet.professors) - else - AnimatedExpandable( - firstChild: _buildLimitedInstructorsRow( - context, - courseUnitSheet.professors, - ), - secondChild: - _buildInstructorsRow(context, courseUnitSheet.professors), - ), - const Opacity( - opacity: 0.25, - child: Divider(color: Colors.grey), - ), - Text( - S.of(context).assessments, - style: Theme.of(context).textTheme.headlineLarge, + _buildInstructorsSection(context, courseUnitSheet.professors), + _buildAssessmentsSection(context, exams), + _buildContentCard( + S.of(context).program, + courseUnitSheet.content, + context, ), - if (exams.isEmpty) - Padding( - padding: const EdgeInsets.only(top: 8), - child: Text( - S.of(context).noExamsScheduled, - style: Theme.of(context).textTheme.bodyLarge, - ), - ) - else - SizedBox( - height: 100, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: _buildExamsRow(context, exams), - ), - ), - _buildCard(S.of(context).program, courseUnitSheet.content, context), - _buildCard( + _buildContentCard( S.of(context).evaluation, courseUnitSheet.evaluation, context, ), - _buildCard( + _buildContentCard( S.of(context).frequency, courseUnitSheet.frequency, context, ), if (courseUnitSheet.books.isNotEmpty) ...[ - const Opacity( - opacity: 0.25, - child: Divider(color: Colors.grey), - ), Text( S.of(context).bibliography, style: Theme.of(context).textTheme.headlineLarge, @@ -95,10 +59,171 @@ class CourseUnitSheetView extends StatelessWidget { ); } - Widget _buildLimitedInstructorsRow( + Widget _buildInstructorsSection( BuildContext context, List instructors, ) { + final textTheme = Theme.of(context).textTheme; + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8), + child: Text( + S.of(context).instructors, + style: textTheme.headlineLarge, + ), + ), + if (instructors.length <= 4) + _InstructorsRow(instructors: instructors) + else + AnimatedExpandable( + firstChild: _LimitedInstructorsRow(instructors: instructors), + secondChild: _InstructorsRow(instructors: instructors), + ), + ], + ); + } + + Widget _buildAssessmentsSection(BuildContext context, List exams) { + final textTheme = Theme.of(context).textTheme; + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Text( + S.of(context).assessments, + style: textTheme.headlineLarge, + ), + ), + if (exams.isEmpty) + Padding( + padding: const EdgeInsets.only(top: 8), + child: Text( + S.of(context).noExamsScheduled, + style: textTheme.bodyLarge, + ), + ) + else + SizedBox( + height: 100, + child: ListView.separated( + scrollDirection: Axis.horizontal, + itemCount: exams.length, + separatorBuilder: (context, index) => const SizedBox(width: 8), + itemBuilder: (context, index) => + _buildExamCard(context, exams[index]), + ), + ), + _addDivider(), + ], + ); + } + + Widget _buildExamCard(BuildContext context, Exam exam) { + return SizedBox( + width: 240, + child: ExamCard( + name: exam.subject, + acronym: exam.subjectAcronym, + rooms: exam.rooms, + type: exam.examType, + startTime: exam.startTime, + examDay: exam.start.day.toString(), + examMonth: exam.monthAcronym(PreferencesController.getLocale()), + showIcon: false, + ), + ); + } + + Widget _buildBooksRow(BuildContext context, List books) { + return Wrap( + alignment: WrapAlignment.spaceBetween, + children: books.map((book) => _buildBookTile(context, book)).toList(), + ); + } + + Widget _buildBookTile(BuildContext context, Book book) { + return Padding( + padding: const EdgeInsets.only(left: 15, right: 15, top: 10), + child: Column( + children: [ + SizedBox( + width: 135, + height: 140, + child: book.isbn.isNotEmpty + ? FutureBuilder( + future: BookThumbFetcher().fetchBookThumb(book.isbn), + builder: (context, snapshot) { + if (snapshot.hasData && snapshot.data != null) { + return Image(image: NetworkImage(snapshot.data!)); + } else { + return const Image( + image: AssetImage( + 'assets/images/book_placeholder.png', + ), + ); + } + }, + ) + : const Image( + image: AssetImage( + 'assets/images/book_placeholder.png', + ), + ), + ), + SizedBox( + width: 135, + child: Text( + book.title, + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.bodyLarge, + ), + ), + ], + ), + ); + } + + Widget _buildContentCard( + String sectionTitle, + String sectionContent, + BuildContext context, + ) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 12), + child: Column( + children: [ + GenericExpandable( + title: sectionTitle, + content: HtmlWidget( + sectionContent != 'null' ? sectionContent : S.of(context).no_info, + textStyle: Theme.of(context).textTheme.bodyLarge, + ), + ), + _addDivider(), + ], + ), + ); + } +} + +Widget _addDivider() { + return const Opacity( + opacity: 0.25, + child: Divider(color: Colors.grey), + ); +} + +class _LimitedInstructorsRow extends StatelessWidget { + const _LimitedInstructorsRow({required this.instructors}); + + final List instructors; + + @override + Widget build(BuildContext context) { + final textTheme = Theme.of(context).textTheme; final firstThree = instructors.take(3).toList(); final remaining = instructors.skip(3).toList(); @@ -107,7 +232,7 @@ class CourseUnitSheetView extends StatelessWidget { runSpacing: 4, children: [ ...firstThree - .map((instructor) => _buildInstructorWidget(context, instructor)), + .map((instructor) => _InstructorChip(instructor: instructor)), if (remaining.isNotEmpty) Container( padding: const EdgeInsets.all(8), @@ -135,7 +260,7 @@ class CourseUnitSheetView extends StatelessWidget { const SizedBox(width: 8), Text( S.of(context).moreInstructors(remaining.length), - style: Theme.of(context).textTheme.bodyLarge, + style: textTheme.bodyLarge, ), ], ), @@ -143,30 +268,39 @@ class CourseUnitSheetView extends StatelessWidget { ], ); } +} - Widget _buildInstructorsRow( - BuildContext context, - List instructors, - ) { +class _InstructorsRow extends StatelessWidget { + const _InstructorsRow({required this.instructors}); + + final List instructors; + + @override + Widget build(BuildContext context) { return Wrap( spacing: 8, runSpacing: 4, children: instructors - .map((instructor) => _buildInstructorWidget(context, instructor)) + .map((instructor) => _InstructorChip(instructor: instructor)) .toList(), ); } +} - Widget _buildInstructorWidget(BuildContext context, Professor instructor) { +class _InstructorChip extends StatelessWidget { + const _InstructorChip({required this.instructor}); + + final Professor instructor; + + @override + Widget build(BuildContext context) { return GestureDetector( - onTap: () { - showDialog( - context: context, - builder: (context) => ProfessorInfoModal(instructor), - ); - }, + onTap: () => showDialog( + context: context, + builder: (context) => ProfessorInfoModal(instructor), + ), child: Container( - padding: const EdgeInsets.all(8), + padding: const EdgeInsets.all(10), decoration: BoxDecoration( color: const Color.fromRGBO(255, 245, 243, 1), borderRadius: BorderRadius.circular(8), @@ -201,103 +335,6 @@ class CourseUnitSheetView extends StatelessWidget { ), ); } - - Widget _buildExamsRow(BuildContext context, List exams) { - return Row( - children: exams.map((exam) { - return Padding( - padding: const EdgeInsets.only(right: 8), - child: SizedBox( - width: 240, - child: ExamCard( - name: exam.subject, - acronym: exam.subjectAcronym, - rooms: exam.rooms, - type: exam.examType, - startTime: exam.startTime, - examDay: exam.start.day.toString(), - examMonth: exam.monthAcronym(PreferencesController.getLocale()), - showIcon: false, - ), - ), - ); - }).toList(), - ); - } - - Widget _buildBooksRow(BuildContext context, List books) { - return Wrap( - alignment: WrapAlignment.spaceBetween, - children: books.map((book) => _buildBookTile(context, book)).toList(), - ); - } - - Widget _buildBookTile(BuildContext context, Book book) { - return Padding( - padding: const EdgeInsets.only(left: 15, right: 15, top: 10), - child: Column( - children: [ - SizedBox( - width: 135, - height: 140, - child: book.isbn.isNotEmpty - ? FutureBuilder( - future: BookThumbFetcher().fetchBookThumb(book.isbn), - builder: (context, snapshot) { - if (snapshot.hasData && snapshot.data != null) { - return Image(image: NetworkImage(snapshot.data!)); - } else { - return const Image( - image: AssetImage( - 'assets/images/book_placeholder.png', - ), - ); - } - }, - ) - : const Image( - image: AssetImage( - 'assets/images/book_placeholder.png', - ), - ), - ), - SizedBox( - width: 135, - child: Text( - book.title, - textAlign: TextAlign.center, - style: Theme.of(context).textTheme.bodyLarge, - ), - ), - ], - ), - ); - } - - Widget _buildCard( - String sectionTitle, - String sectionContent, - BuildContext context, - ) { - return Padding( - padding: const EdgeInsets.symmetric(vertical: 8), - child: Column( - children: [ - const Opacity( - opacity: 0.25, - child: Divider(color: Colors.grey), - ), - GenericExpandable( - content: HtmlWidget( - sectionContent != 'null' ? sectionContent : S.of(context).no_info, - textStyle: Theme.of(context).textTheme.bodyLarge, - ), - title: sectionTitle, - ), - ], - ), - ); - } } class _InstructorAvatar extends StatelessWidget { @@ -309,17 +346,15 @@ class _InstructorAvatar extends StatelessWidget { Widget build(BuildContext context) { final session = Provider.of(context, listen: false).state!; return FutureBuilder( + future: ProfileProvider.fetchOrGetCachedProfilePicture( + session, + studentNumber: int.parse(instructor.code), + ), builder: (context, snapshot) => CircleAvatar( radius: 20, backgroundImage: snapshot.hasData && snapshot.data != null ? FileImage(snapshot.data!) as ImageProvider - : const AssetImage( - 'assets/images/profile_placeholder.png', - ), - ), - future: ProfileProvider.fetchOrGetCachedProfilePicture( - session, - studentNumber: int.parse(instructor.code), + : const AssetImage('assets/images/profile_placeholder.png'), ), ); } diff --git a/packages/uni_ui/lib/cards/exam_card.dart b/packages/uni_ui/lib/cards/exam_card.dart index 91b13a4fd..d4a9be1ac 100644 --- a/packages/uni_ui/lib/cards/exam_card.dart +++ b/packages/uni_ui/lib/cards/exam_card.dart @@ -42,7 +42,6 @@ class ExamCard extends StatelessWidget { opacity: isInvisible ? 0.6 : 1.0, child: GenericCard( key: key, - color: const Color.fromRGBO(255, 245, 243, 1), //TODO: Use theme child: Row( children: [ Expanded(