Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
2f77215
test(core): Expand `ConfigLoader` tests for organization loading
daniJimen Jan 12, 2026
73c233d
test(core): Add error handling tests for `SecureInfo`
daniJimen Jan 12, 2026
fb9ec7a
test(core): Add missing `loadOrganization` call in `ConfigLoader` tests
daniJimen Jan 12, 2026
0c2996b
test(core): Add unit tests for `Result` and refine `AgendaFormScreen`…
daniJimen Jan 12, 2026
913d5ce
refactor(core): Simplify JSON parsing and add empty data template
daniJimen Jan 12, 2026
94ede0d
test(data): Add error handling and edge case tests for `CommonsServic…
daniJimen Jan 12, 2026
65e65ae
Merge branch 'main' into feature/add_more_tests
daniJimen Jan 12, 2026
5abf83f
test(data): Add error handling and edge case tests for `CommonsApiSer…
daniJimen Jan 12, 2026
5db9934
test(data): Expand error handling and status code tests for `CommonsA…
daniJimen Jan 12, 2026
370b55a
test(data): Add error handling tests for `updateAllData` in `CommonsA…
daniJimen Jan 12, 2026
d1de650
test(presentation): Add tests for room dialog in `AgendaFormScreen`
daniJimen Jan 12, 2026
6d2842a
refactor(ui): Remove unused `isTimeSelected` helper in `AgendaFormScr…
daniJimen Jan 12, 2026
e37bca4
test(presentation): Add widget tests for `AdminLoginScreen` and impro…
daniJimen Jan 12, 2026
1b537d5
feat(l10n): Add option management and confirmation strings
daniJimen Jan 12, 2026
035bdfb
fix(l10n): Update `tokenHintLabel` translation in Basque
daniJimen Jan 12, 2026
6f66450
refactor(ui): localize strings in `AddRoom` widget
daniJimen Jan 12, 2026
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
42 changes: 18 additions & 24 deletions lib/core/models/github_json_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,40 +38,34 @@ class GithubJsonModel {
/// Optional fields (eventDates, venue, description) will be null if not provided
factory GithubJsonModel.fromJson(Map<String, dynamic> json) {
List<Event> events = (json['events'] != null)
? (json['events'] as List?)
?.map((item) => Event.fromJson(item))
.toList() ??
[]
? (json['events'] as List)
.map((item) => Event.fromJson(item))
.toList()
: [];
List<Track> tracks = (json['tracks'] != null)
? (json['tracks'] as List?)
?.map((item) => Track.fromJson(item))
.toList() ??
[]
? (json['tracks'] as List)
.map((item) => Track.fromJson(item))
.toList()
: [];
List<Session> sessions = (json['sessions'] != null)
? (json['sessions'] as List?)
?.map((item) => Session.fromJson(item))
.toList() ??
[]
? (json['sessions'] as List)
.map((item) => Session.fromJson(item))
.toList()
: [];
List<AgendaDay> agendadays = (json['agendadays'] != null)
? (json['agendadays'] as List?)
?.map((item) => AgendaDay.fromJson(item))
.toList() ??
[]
? (json['agendadays'] as List)
.map((item) => AgendaDay.fromJson(item))
.toList()
: [];
List<Sponsor> sponsors = (json['sponsors'] != null)
? (json['sponsors'] as List?)
?.map((item) => Sponsor.fromJson(item))
.toList() ??
[]
? (json['sponsors'] as List)
.map((item) => Sponsor.fromJson(item))
.toList()
: [];
List<Speaker> speakers = (json['speakers'] != null)
? (json['speakers'] as List?)
?.map((item) => Speaker.fromJson(item))
.toList() ??
[]
? (json['speakers'] as List)
.map((item) => Speaker.fromJson(item))
.toList()
: [];
return GithubJsonModel(
events: events,
Expand Down
6 changes: 0 additions & 6 deletions lib/core/models/session_type.dart
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,4 @@ abstract class SessionTypes {
return 'other';
}
}

static List<String> allLabels(BuildContext context) {
return SessionType.values
.map((type) => getSessionTypeLabel(context, type.name))
.toList();
}
}
3 changes: 0 additions & 3 deletions lib/core/routing/app_router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,6 @@ class AppRouter {
path: agendaFormPath,
name: agendaFormName,
builder: (context, state) {
if (state.extra == null) {
return AgendaFormScreen();
}
final agendaFormData = state.extra as AgendaFormData;
return AgendaFormScreen(data: agendaFormData);
},
Expand Down
8 changes: 6 additions & 2 deletions lib/l10n/app_ca.arb
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,10 @@
"onLive": "On Live",
"onlineNow": "En línia ara",
"selectSpeaker": "Selecciona un ponent",
"noLiveStreamAvailable": "No hi ha directes disponibles"

"noLiveStreamAvailable": "No hi ha directes disponibles",
"confirm": "Confirmar",
"deleteOptionMessage": "Vols eliminar aquesta opció?",
"delete": "Eliminar",
"addOption": "Afegir opció",
"optionHint": "Opció"
}
7 changes: 6 additions & 1 deletion lib/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -194,5 +194,10 @@
"onLive": "On Live",
"selectSpeaker": "Select a speaker",
"onlineNow": "Online Now",
"noLiveStreamAvailable": "No live streams available"
"noLiveStreamAvailable": "No live streams available",
"confirm": "Confirm",
"deleteOptionMessage": "Do you want to delete this option?",
"delete": "Delete",
"addOption": "Add option",
"optionHint": "Option"
}
7 changes: 6 additions & 1 deletion lib/l10n/app_es.arb
Original file line number Diff line number Diff line change
Expand Up @@ -178,5 +178,10 @@
"loadingTitle": "Cargando...",
"logout": "Cerrar Sesión",
"onLive": "En Vivo",
"noLiveStreamAvailable": "No hay transmisión en vivo disponible"
"noLiveStreamAvailable": "No hay transmisión en vivo disponible",
"confirm": "Confirmar",
"deleteOptionMessage": "¿Deseas eliminar esta opción?",
"delete": "Eliminar",
"addOption": "Añadir opción",
"optionHint": "Opción"
}
10 changes: 7 additions & 3 deletions lib/l10n/app_eu.arb
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@
"loginTitle": "Saioa hasi",
"projectNameLabel": "Proiektuaren izena",
"projectNameHint": "Mesedez, sartu proiektuaren izena",
"tokenHintLabel": "Sartu zure bezeroaren sekretua jarraitzeko",
"tokenHintLabel": "Sartu votre bezeroaren sekretua jarraitzeko",
"tokenHint": "Mesedez, sartu baliozko GitHub token bat",
"unknownAuthError": "Autentifikazio-errore ezezaguna.",
"projectNotFoundError": "“{projectName}” proiektua ez da existitzen zure GitHub-eko biltegietan.",
Expand Down Expand Up @@ -194,6 +194,10 @@
"onLive": "On Live",
"selectSpeaker": "Hautatu hizlaria",
"onlineNow": "Online Now",
"noLiveStreamAvailable": "Ez dago zuzeneko emankizunik eskuragarri"

"noLiveStreamAvailable": "Ez dago zuzeneko emankizunik eskuragarri",
"confirm": "Berretsi",
"deleteOptionMessage": "Aukera hau ezabatu nahi duzu?",
"delete": "Ezabatu",
"addOption": "Aukera gehitu",
"optionHint": "Aukera"
}
8 changes: 6 additions & 2 deletions lib/l10n/app_fr.arb
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,10 @@
"onLive": "On Live",
"onlineNow": "En ligne maintenant",
"selectSpeaker": "Sélectionnez un intervenant",
"noLiveStreamAvailable": "Aucun direct n'est disponible"

"noLiveStreamAvailable": "Aucun direct n'est disponible",
"confirm": "Confirmer",
"deleteOptionMessage": "Voulez-vous supprimer cette option ?",
"delete": "Supprimer",
"addOption": "Ajouter une option",
"optionHint": "Option"
}
8 changes: 6 additions & 2 deletions lib/l10n/app_gl.arb
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,10 @@
"noLiveStreamAvailable": "No hay directos disponibles",
"onLive": "On Live",
"selectSpeaker": "Selecciona un poñente",
"onlineNow": "En liña agora"

"onlineNow": "En liña agora",
"confirm": "Confirmar",
"deleteOptionMessage": "Desexas eliminar esta opción?",
"delete": "Eliminar",
"addOption": "Engadir opción",
"optionHint": "Opción"
}
8 changes: 6 additions & 2 deletions lib/l10n/app_it.arb
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,10 @@
"onLive": "On Live",
"onlineNow": "Online adesso",
"selectSpeaker": "Seleziona un relatore",
"noLiveStreamAvailable": "Non ci sono dirette disponibili"

"noLiveStreamAvailable": "Non ci sono dirette disponibili",
"confirm": "Conferma",
"deleteOptionMessage": "Vuoi eliminare questa opzione?",
"delete": "Elimina",
"addOption": "Aggiungi opzione",
"optionHint": "Opzione"
}
30 changes: 30 additions & 0 deletions lib/l10n/app_localizations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1183,6 +1183,36 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'No live streams available'**
String get noLiveStreamAvailable;

/// No description provided for @confirm.
///
/// In en, this message translates to:
/// **'Confirm'**
String get confirm;

/// No description provided for @deleteOptionMessage.
///
/// In en, this message translates to:
/// **'Do you want to delete this option?'**
String get deleteOptionMessage;

/// No description provided for @delete.
///
/// In en, this message translates to:
/// **'Delete'**
String get delete;

/// No description provided for @addOption.
///
/// In en, this message translates to:
/// **'Add option'**
String get addOption;

/// No description provided for @optionHint.
///
/// In en, this message translates to:
/// **'Option'**
String get optionHint;
}

class _AppLocalizationsDelegate
Expand Down
15 changes: 15 additions & 0 deletions lib/l10n/app_localizations_ca.dart
Original file line number Diff line number Diff line change
Expand Up @@ -566,4 +566,19 @@ class AppLocalizationsCa extends AppLocalizations {

@override
String get noLiveStreamAvailable => 'No hi ha directes disponibles';

@override
String get confirm => 'Confirmar';

@override
String get deleteOptionMessage => 'Vols eliminar aquesta opció?';

@override
String get delete => 'Eliminar';

@override
String get addOption => 'Afegir opció';

@override
String get optionHint => 'Opció';
}
15 changes: 15 additions & 0 deletions lib/l10n/app_localizations_en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -557,4 +557,19 @@ class AppLocalizationsEn extends AppLocalizations {

@override
String get noLiveStreamAvailable => 'No live streams available';

@override
String get confirm => 'Confirm';

@override
String get deleteOptionMessage => 'Do you want to delete this option?';

@override
String get delete => 'Delete';

@override
String get addOption => 'Add option';

@override
String get optionHint => 'Option';
}
15 changes: 15 additions & 0 deletions lib/l10n/app_localizations_es.dart
Original file line number Diff line number Diff line change
Expand Up @@ -556,4 +556,19 @@ class AppLocalizationsEs extends AppLocalizations {

@override
String get noLiveStreamAvailable => 'No hay transmisión en vivo disponible';

@override
String get confirm => 'Confirmar';

@override
String get deleteOptionMessage => '¿Deseas eliminar esta opción?';

@override
String get delete => 'Eliminar';

@override
String get addOption => 'Añadir opción';

@override
String get optionHint => 'Opción';
}
17 changes: 16 additions & 1 deletion lib/l10n/app_localizations_eu.dart
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ class AppLocalizationsEu extends AppLocalizations {
String get projectNameHint => 'Mesedez, sartu proiektuaren izena';

@override
String get tokenHintLabel => 'Sartu zure bezeroaren sekretua jarraitzeko';
String get tokenHintLabel => 'Sartu votre bezeroaren sekretua jarraitzeko';

@override
String get tokenHint => 'Mesedez, sartu baliozko GitHub token bat';
Expand Down Expand Up @@ -561,4 +561,19 @@ class AppLocalizationsEu extends AppLocalizations {
@override
String get noLiveStreamAvailable =>
'Ez dago zuzeneko emankizunik eskuragarri';

@override
String get confirm => 'Berretsi';

@override
String get deleteOptionMessage => 'Aukera hau ezabatu nahi duzu?';

@override
String get delete => 'Ezabatu';

@override
String get addOption => 'Aukera gehitu';

@override
String get optionHint => 'Aukera';
}
15 changes: 15 additions & 0 deletions lib/l10n/app_localizations_fr.dart
Original file line number Diff line number Diff line change
Expand Up @@ -566,4 +566,19 @@ class AppLocalizationsFr extends AppLocalizations {

@override
String get noLiveStreamAvailable => 'Aucun direct n\'est disponible';

@override
String get confirm => 'Confirmer';

@override
String get deleteOptionMessage => 'Voulez-vous supprimer cette option ?';

@override
String get delete => 'Supprimer';

@override
String get addOption => 'Ajouter une option';

@override
String get optionHint => 'Option';
}
15 changes: 15 additions & 0 deletions lib/l10n/app_localizations_gl.dart
Original file line number Diff line number Diff line change
Expand Up @@ -562,4 +562,19 @@ class AppLocalizationsGl extends AppLocalizations {

@override
String get noLiveStreamAvailable => 'No hay directos disponibles';

@override
String get confirm => 'Confirmar';

@override
String get deleteOptionMessage => 'Desexas eliminar esta opción?';

@override
String get delete => 'Eliminar';

@override
String get addOption => 'Engadir opción';

@override
String get optionHint => 'Opción';
}
15 changes: 15 additions & 0 deletions lib/l10n/app_localizations_it.dart
Original file line number Diff line number Diff line change
Expand Up @@ -565,4 +565,19 @@ class AppLocalizationsIt extends AppLocalizations {

@override
String get noLiveStreamAvailable => 'Non ci sono dirette disponibili';

@override
String get confirm => 'Conferma';

@override
String get deleteOptionMessage => 'Vuoi eliminare questa opzione?';

@override
String get delete => 'Elimina';

@override
String get addOption => 'Aggiungi opzione';

@override
String get optionHint => 'Opzione';
}
15 changes: 15 additions & 0 deletions lib/l10n/app_localizations_pt.dart
Original file line number Diff line number Diff line change
Expand Up @@ -560,4 +560,19 @@ class AppLocalizationsPt extends AppLocalizations {

@override
String get noLiveStreamAvailable => 'Não há transmissões ao vivo disponíveis';

@override
String get confirm => 'Confirmar';

@override
String get deleteOptionMessage => 'Deseja eliminar esta opção?';

@override
String get delete => 'Apagar';

@override
String get addOption => 'Adicionar opção';

@override
String get optionHint => 'Opção';
}
Loading
Loading