chore: add CEFR level to activities
This commit is contained in:
parent
261dfafc6a
commit
47e03d5a02
5 changed files with 67 additions and 1 deletions
|
|
@ -10,6 +10,7 @@ import 'package:fluffychat/pangea/activity_planner/activity_plan_card.dart';
|
|||
import 'package:fluffychat/pangea/activity_planner/activity_planner_builder.dart';
|
||||
import 'package:fluffychat/pangea/activity_planner/suggestion_form_field.dart';
|
||||
import 'package:fluffychat/pangea/activity_suggestions/activity_suggestions_constants.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/widgets/language_level_dropdown.dart';
|
||||
import 'package:fluffychat/pangea/instructions/instructions_enum.dart';
|
||||
import 'package:fluffychat/pangea/instructions/instructions_inline_tooltip.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/utils/p_language_store.dart';
|
||||
|
|
@ -195,6 +196,11 @@ class ActivityGeneratorView extends StatelessWidget {
|
|||
},
|
||||
),
|
||||
const SizedBox(height: 16.0),
|
||||
LanguageLevelDropdown(
|
||||
onChanged: controller.setSelectedCefrLevel,
|
||||
initialLevel: controller.selectedCefrLevel,
|
||||
),
|
||||
const SizedBox(height: 16.0),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
|
|
|
|||
|
|
@ -13,8 +13,10 @@ import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
|
|||
import 'package:fluffychat/pangea/activity_planner/activity_planner_builder.dart';
|
||||
import 'package:fluffychat/pangea/activity_planner/bookmarked_activities_repo.dart';
|
||||
import 'package:fluffychat/pangea/activity_suggestions/activity_room_selection.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/widgets/language_level_dropdown.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/full_width_dialog.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/enums/language_level_type_enum.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
|
||||
class ActivityPlanCard extends StatefulWidget {
|
||||
|
|
@ -264,6 +266,32 @@ class ActivityPlanCardState extends State<ActivityPlanCard> {
|
|||
],
|
||||
),
|
||||
const SizedBox(height: itemPadding),
|
||||
Row(
|
||||
children: [
|
||||
Icon(
|
||||
Icons.school_outlined,
|
||||
color: Theme.of(context).colorScheme.secondary,
|
||||
),
|
||||
const SizedBox(width: itemPadding),
|
||||
Expanded(
|
||||
child: widget.controller.isEditing
|
||||
? LanguageLevelDropdown(
|
||||
initialLevel:
|
||||
widget.controller.languageLevel,
|
||||
onChanged:
|
||||
widget.controller.setLanguageLevel,
|
||||
)
|
||||
: Text(
|
||||
widget.controller.updatedActivity.req
|
||||
.cefrLevel
|
||||
.title(context),
|
||||
style:
|
||||
Theme.of(context).textTheme.bodyMedium,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: itemPadding),
|
||||
if (widget.controller.vocab.isNotEmpty) ...[
|
||||
Row(
|
||||
children: [
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ class ActivityPlanRequest {
|
|||
final String mode;
|
||||
final String objective;
|
||||
final MediaEnum media;
|
||||
final LanguageLevelTypeEnum cefrLevel;
|
||||
LanguageLevelTypeEnum cefrLevel;
|
||||
final String languageOfInstructions;
|
||||
final String targetLanguage;
|
||||
final int count;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:matrix/matrix.dart';
|
|||
import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/enums/language_level_type_enum.dart';
|
||||
import 'package:fluffychat/utils/client_download_content_extension.dart';
|
||||
import 'package:fluffychat/utils/file_selector.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
|
@ -52,6 +53,7 @@ class ActivityPlannerBuilderState extends State<ActivityPlannerBuilder> {
|
|||
TextEditingController();
|
||||
|
||||
final List<Vocab> vocab = [];
|
||||
late LanguageLevelTypeEnum languageLevel;
|
||||
|
||||
final GlobalKey<FormState> formKey = GlobalKey<FormState>();
|
||||
|
||||
|
|
@ -79,6 +81,7 @@ class ActivityPlannerBuilderState extends State<ActivityPlannerBuilder> {
|
|||
|
||||
final updatedReq = widget.initialActivity.req;
|
||||
updatedReq.numberOfParticipants = participants;
|
||||
updatedReq.cefrLevel = languageLevel;
|
||||
|
||||
return ActivityPlanModel(
|
||||
req: updatedReq,
|
||||
|
|
@ -105,6 +108,8 @@ class ActivityPlannerBuilderState extends State<ActivityPlannerBuilder> {
|
|||
vocab.clear();
|
||||
vocab.addAll(widget.initialActivity.vocab);
|
||||
|
||||
languageLevel = widget.initialActivity.req.cefrLevel;
|
||||
|
||||
imageURL = widget.initialActivity.imageURL;
|
||||
filename = widget.initialFilename;
|
||||
await _setAvatarByURL();
|
||||
|
|
@ -133,6 +138,11 @@ class ActivityPlannerBuilderState extends State<ActivityPlannerBuilder> {
|
|||
if (mounted) setState(() {});
|
||||
}
|
||||
|
||||
void setLanguageLevel(LanguageLevelTypeEnum level) {
|
||||
languageLevel = level;
|
||||
if (mounted) setState(() {});
|
||||
}
|
||||
|
||||
void selectAvatar() async {
|
||||
final photo = await selectFiles(
|
||||
context,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:fluffychat/pangea/activity_planner/activity_planner_builder.dart';
|
||||
import 'package:fluffychat/pangea/activity_suggestions/activity_room_selection.dart';
|
||||
import 'package:fluffychat/pangea/activity_suggestions/activity_suggestion_card_row.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/widgets/language_level_dropdown.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/full_width_dialog.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/enums/language_level_type_enum.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
import 'package:fluffychat/widgets/mxc_image.dart';
|
||||
|
||||
|
|
@ -294,6 +296,26 @@ class ActivitySuggestionDialogState extends State<ActivitySuggestionDialog> {
|
|||
style: theme.textTheme.bodyLarge,
|
||||
),
|
||||
),
|
||||
if (widget.controller.isEditing)
|
||||
ActivitySuggestionCardRow(
|
||||
icon: Icons.school_outlined,
|
||||
child: LanguageLevelDropdown(
|
||||
initialLevel:
|
||||
widget.controller.languageLevel,
|
||||
onChanged: widget
|
||||
.controller.setLanguageLevel,
|
||||
),
|
||||
)
|
||||
else
|
||||
ActivitySuggestionCardRow(
|
||||
icon: Icons.school_outlined,
|
||||
child: Text(
|
||||
widget.controller.updatedActivity.req
|
||||
.cefrLevel
|
||||
.title(context),
|
||||
style: theme.textTheme.bodyLarge,
|
||||
),
|
||||
),
|
||||
if (widget.controller.isEditing)
|
||||
ActivitySuggestionCardRow(
|
||||
icon: Symbols.dictionary,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue