Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Thesis Offers to Studies Tab #305

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
*.swp
.DS_Store
.atom/
.build/
.buildlog/
.history
.svn/
.swiftpm/
migrate_working_dir/

# IntelliJ related
Expand Down
2 changes: 1 addition & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
2 changes: 1 addition & 1 deletion android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pluginManagement {

plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version '8.7.3' apply false
id "com.android.application" version '8.8.0' apply false
id "org.jetbrains.kotlin.android" version "1.9.20" apply false
id "org.jetbrains.kotlin.plugin.serialization" version "2.0.21" apply false
id "com.google.gms.google-services" version "4.4.2" apply false
Expand Down
3 changes: 2 additions & 1 deletion assets/translations/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -234,5 +234,6 @@
"more": "Mehr",
"visibility": "Sichtbarkeit",
"utilizationAt": "Auslastung bei {}%",
"showStudentCardPicture": "Student Card Bild zeigen"
"showStudentCardPicture": "Student Card Bild zeigen",
"theses": "Abschlussarbeiten"
}
3 changes: 2 additions & 1 deletion assets/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -234,5 +234,6 @@
"more": "More",
"visibility": "Visibility",
"utilizationAt": "Utilization at {}%",
"showStudentCardPicture": "Show Student Card Picture"
"showStudentCardPicture": "Show Student Card Picture",
"theses": "Theses"
}
134 changes: 67 additions & 67 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,68 +1,68 @@
PODS:
- device_info_plus (0.0.1):
- Flutter
- Firebase/CoreOnly (11.4.0):
- FirebaseCore (= 11.4.0)
- Firebase/Crashlytics (11.4.0):
- Firebase/CoreOnly (11.6.0):
- FirebaseCore (~> 11.6.0)
- Firebase/Crashlytics (11.6.0):
- Firebase/CoreOnly
- FirebaseCrashlytics (~> 11.4.0)
- Firebase/RemoteConfig (11.4.0):
- FirebaseCrashlytics (~> 11.6.0)
- Firebase/RemoteConfig (11.6.0):
- Firebase/CoreOnly
- FirebaseRemoteConfig (~> 11.4.0)
- firebase_core (3.8.1):
- Firebase/CoreOnly (= 11.4.0)
- FirebaseRemoteConfig (~> 11.6.0)
- firebase_core (3.10.1):
- Firebase/CoreOnly (= 11.6.0)
- Flutter
- firebase_crashlytics (4.2.0):
- Firebase/Crashlytics (= 11.4.0)
- firebase_crashlytics (4.3.1):
- Firebase/Crashlytics (= 11.6.0)
- firebase_core
- Flutter
- firebase_remote_config (5.2.0):
- Firebase/RemoteConfig (= 11.4.0)
- firebase_remote_config (5.3.1):
- Firebase/RemoteConfig (= 11.6.0)
- firebase_core
- Flutter
- FirebaseABTesting (11.4.0):
- FirebaseCore (~> 11.0)
- FirebaseCore (11.4.0):
- FirebaseCoreInternal (~> 11.0)
- FirebaseABTesting (11.6.0):
- FirebaseCore (~> 11.6.0)
- FirebaseCore (11.6.0):
- FirebaseCoreInternal (~> 11.6.0)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/Logger (~> 8.0)
- FirebaseCoreExtension (11.4.1):
- FirebaseCore (~> 11.0)
- FirebaseCoreExtension (11.6.0):
- FirebaseCore (~> 11.6.0)
- FirebaseCoreInternal (11.6.0):
- "GoogleUtilities/NSData+zlib (~> 8.0)"
- FirebaseCrashlytics (11.4.0):
- FirebaseCore (~> 11.4)
- FirebaseCrashlytics (11.6.0):
- FirebaseCore (~> 11.6.0)
- FirebaseInstallations (~> 11.0)
- FirebaseRemoteConfigInterop (~> 11.0)
- FirebaseSessions (~> 11.0)
- GoogleDataTransport (~> 10.0)
- GoogleUtilities/Environment (~> 8.0)
- nanopb (~> 3.30910.0)
- PromisesObjC (~> 2.4)
- FirebaseInstallations (11.4.0):
- FirebaseCore (~> 11.0)
- FirebaseInstallations (11.6.0):
- FirebaseCore (~> 11.6.0)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/UserDefaults (~> 8.0)
- PromisesObjC (~> 2.4)
- FirebaseRemoteConfig (11.4.0):
- FirebaseRemoteConfig (11.6.0):
- FirebaseABTesting (~> 11.0)
- FirebaseCore (~> 11.0)
- FirebaseCore (~> 11.6.0)
- FirebaseInstallations (~> 11.0)
- FirebaseRemoteConfigInterop (~> 11.0)
- FirebaseSharedSwift (~> 11.0)
- GoogleUtilities/Environment (~> 8.0)
- "GoogleUtilities/NSData+zlib (~> 8.0)"
- FirebaseRemoteConfigInterop (11.6.0)
- FirebaseSessions (11.4.0):
- FirebaseCore (~> 11.4)
- FirebaseCoreExtension (~> 11.4)
- FirebaseRemoteConfigInterop (11.7.0)
- FirebaseSessions (11.6.0):
- FirebaseCore (~> 11.6.0)
- FirebaseCoreExtension (~> 11.6.0)
- FirebaseInstallations (~> 11.0)
- GoogleDataTransport (~> 10.0)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/UserDefaults (~> 8.0)
- nanopb (~> 3.30910.0)
- PromisesSwift (~> 2.1)
- FirebaseSharedSwift (11.6.0)
- FirebaseSharedSwift (11.7.0)
- Flutter (1.0.0)
- flutter_native_splash (2.4.3):
- Flutter
Expand Down Expand Up @@ -122,21 +122,21 @@ PODS:
- sqflite_darwin (0.0.4):
- Flutter
- FlutterMacOS
- sqlite3 (3.47.1):
- sqlite3/common (= 3.47.1)
- sqlite3/common (3.47.1)
- sqlite3/dbstatvtab (3.47.1):
- sqlite3 (3.48.0):
- sqlite3/common (= 3.48.0)
- sqlite3/common (3.48.0)
- sqlite3/dbstatvtab (3.48.0):
- sqlite3/common
- sqlite3/fts5 (3.47.1):
- sqlite3/fts5 (3.48.0):
- sqlite3/common
- sqlite3/perf-threadsafe (3.47.1):
- sqlite3/perf-threadsafe (3.48.0):
- sqlite3/common
- sqlite3/rtree (3.47.1):
- sqlite3/rtree (3.48.0):
- sqlite3/common
- sqlite3_flutter_libs (0.0.1):
- Flutter
- FlutterMacOS
- sqlite3 (~> 3.47.1)
- sqlite3 (~> 3.48.0)
- sqlite3/dbstatvtab
- sqlite3/fts5
- sqlite3/perf-threadsafe
Expand Down Expand Up @@ -234,45 +234,45 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/video_player_avfoundation/darwin"

SPEC CHECKSUMS:
device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342
Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99
firebase_core: 418aed674e9a0b8b6088aec16cde82a811f6261f
firebase_crashlytics: 757e252772ed3dd37c07638f9fcd4dceb5f101c8
firebase_remote_config: 015a36be218a38943c2273d63b33bc983b3d7bb6
FirebaseABTesting: aef1719704fade00b200827e7973f352efc4caee
FirebaseCore: e0510f1523bc0eb21653cac00792e1e2bd6f1771
FirebaseCoreExtension: f1bc67a4702931a7caa097d8e4ac0a1b0d16720e
device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
Firebase: 374a441a91ead896215703a674d58cdb3e9d772b
firebase_core: d3deb82d05dac4bc13190f9d1770787fd6a1cda4
firebase_crashlytics: 4c7c77cf1825b70b031fef62e99441c3a423eaa2
firebase_remote_config: 6098e2aa252ed19471973710fdee82ae735b42a7
FirebaseABTesting: 663ece168d2d65a31f71603d71937e326020a887
FirebaseCore: 48b0dd707581cf9c1a1220da68223fb0a562afaa
FirebaseCoreExtension: 2d77d6430c16cf43ca2b04608302ed02b3598361
FirebaseCoreInternal: d98ab91e2d80a56d7b246856a8885443b302c0c2
FirebaseCrashlytics: 41bbdd2b514a8523cede0c217aee6ef7ecf38401
FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
FirebaseRemoteConfig: 7655681d02417bc9b287338edb9d721ff79e1a4a
FirebaseRemoteConfigInterop: e75e348953352a000331eb77caf01e424248e176
FirebaseSessions: 3f56f177d9e53a85021d16b31f9a111849d1dd8b
FirebaseSharedSwift: a4e5dfca3e210633bb3a3dfb94176c019211948b
FirebaseCrashlytics: b21c665fb50138766480bce73ebdb1aa30f7f300
FirebaseInstallations: efc0946fc756e4d22d8113f7c761948120322e8c
FirebaseRemoteConfig: ee5161282c4e857ad81c0197cd8baec9d5dfef0e
FirebaseRemoteConfigInterop: ca12abf9da0003efd3a476b2dff4f7a04fd31b4f
FirebaseSessions: 9529d14180868e29a8da164b3a729c036204918b
FirebaseSharedSwift: a45efd84d60ebbfdcdbaebc66948af3630459e62
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_native_splash: e8a1e01082d97a8099d973f919f57904c925008a
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
geolocator_apple: 9bcea1918ff7f0062d98345d238ae12718acfbc1
flutter_native_splash: 6cad9122ea0fad137d23137dd14b937f3e90b145
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
geolocator_apple: 1560c3c875af2a412242c7a923e15d0d401966ff
Google-Maps-iOS-Utils: 66d6de12be1ce6d3742a54661e7a79cb317a9321
google_maps_flutter_ios: e31555a04d1986ab130f2b9f24b6cdc861acc6d3
google_maps_flutter_ios: 0291eb2aa252298a769b04d075e4a9d747ff7264
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleMaps: 8939898920281c649150e0af74aa291c60f2e77d
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57
map_launcher: 5fde49ac9a52672bf99da746599f507b4490d7b5
home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f
map_launcher: fe43bda6720bb73c12fcc1bdd86123ff49a4d4d6
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851
quick_actions_ios: 56f3cbaa71e94f212838d1f9fe354bd0734779bf
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
sqlite3: 1e522f0938463e44b7faf50393b40bdc1e1e456d
sqlite3_flutter_libs: 1b4e98da20ebd4e9b1240269b78cdcf492dbe9f3
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
quick_actions_ios: 4b07fb49d8d8f3518d7565fbb7a91014067a7d82
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
sqlite3: 3da10a59910c809fb584a93aa46a3f05b785e12e
sqlite3_flutter_libs: c26d86af4ad88f1465dc4e07e6dc6931eef228e4
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b

PODFILE CHECKSUM: f5f6fa56ec332013222699049ea868939deda084

Expand Down
2 changes: 0 additions & 2 deletions lib/base/networking/apis/google/protobuf/empty.pb.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ import 'package:protobuf/protobuf.dart' as $pb;
/// service Foo {
/// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
/// }
///
/// The JSON representation for `Empty` is empty JSON object `{}`.
class Empty extends $pb.GeneratedMessage {
factory Empty() => create();
Empty._() : super();
Expand Down
4 changes: 1 addition & 3 deletions lib/base/networking/apis/google/protobuf/timestamp.pb.dart
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ import 'package:protobuf/src/protobuf/mixins/well_known.dart' as $mixin;
/// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
/// .setNanos((int) ((millis % 1000) * 1000000)).build();
///
///
/// Example 5: Compute Timestamp from Java `Instant.now()`.
///
/// Instant now = Instant.now();
Expand All @@ -74,7 +73,6 @@ import 'package:protobuf/src/protobuf/mixins/well_known.dart' as $mixin;
/// Timestamp.newBuilder().setSeconds(now.getEpochSecond())
/// .setNanos(now.getNano()).build();
///
///
/// Example 6: Compute Timestamp from current time in Python.
///
/// timestamp = Timestamp()
Expand Down Expand Up @@ -104,7 +102,7 @@ import 'package:protobuf/src/protobuf/mixins/well_known.dart' as $mixin;
/// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
/// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
/// the Joda Time's [`ISODateTimeFormat.dateTime()`](
/// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
/// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
/// ) to obtain a formatter capable of generating timestamps in this format.
class Timestamp extends $pb.GeneratedMessage with $mixin.TimestampMixin {
factory Timestamp({
Expand Down
17 changes: 16 additions & 1 deletion lib/base/routing/router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,11 @@ import 'package:campus_flutter/searchComponent/viewModels/search_viewmodel.dart'
import 'package:campus_flutter/searchComponent/views/search_scaffold.dart';
import 'package:campus_flutter/settingsComponent/views/settings_scaffold.dart';
import 'package:campus_flutter/studiesComponent/model/lecture.dart';
import 'package:campus_flutter/studiesComponent/screen/grades_screen.dart';
import 'package:campus_flutter/studiesComponent/screen/lectures_screen.dart';
import 'package:campus_flutter/studiesComponent/screen/studies_screen.dart';
import 'package:campus_flutter/studiesComponent/view/lectureDetail/lecture_details_view.dart';
import 'package:campus_flutter/studiesComponent/screen/theses_screen.dart';
import 'package:campus_flutter/studiesComponent/view/lecture/lectureDetail/lecture_details_view.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';

Expand Down Expand Up @@ -154,6 +157,18 @@ final _router = GoRouter(
),
],
),
GoRoute(
path: grades,
builder: (context, state) => const GradesScreen(),
),
GoRoute(
path: lectures,
builder: (context, state) => const LecturesScreen(),
),
GoRoute(
path: theses,
builder: (context, state) => const ThesesScreen(),
),
GoRoute(
path: lectureDetails,
builder: (context, state) => LectureDetailsScaffold(
Expand Down
3 changes: 3 additions & 0 deletions lib/base/routing/routes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ const fullScreenImage = "/fullScreenImage";

/// Studies tab
const studies = "/studies";
const grades = "/grades";
const lectures = "/lectures";
const lectureDetails = "/lectureDetails";
const theses = "/theses";

/// Calendar tab
const calendar = "/calendar";
Expand Down
19 changes: 19 additions & 0 deletions lib/studiesComponent/screen/grades_screen.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import 'package:campus_flutter/base/util/custom_back_button.dart';
import 'package:campus_flutter/studiesComponent/view/grade/grades_view.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';

class GradesScreen extends StatelessWidget {
const GradesScreen({super.key});

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: CustomBackButton(),
title: Text(context.tr("grades")),
),
body: GradesView(),
);
}
}
19 changes: 19 additions & 0 deletions lib/studiesComponent/screen/lectures_screen.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import 'package:campus_flutter/base/util/custom_back_button.dart';
import 'package:campus_flutter/studiesComponent/view/lecture/lectures_view.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';

class LecturesScreen extends StatelessWidget {
const LecturesScreen({super.key});

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: CustomBackButton(),
title: Text(context.tr("lectures")),
),
body: LecturesView(),
);
}
}
Loading
Loading