Skip to content

Commit

Permalink
Merge pull request #590 from verdigado/bugfix/profiles-and-news
Browse files Browse the repository at this point in the history
Bugfix Profiles and News
  • Loading branch information
NikoHadouken authored Feb 8, 2025
2 parents c753d1a + deba1b4 commit 8cd4df7
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 10 deletions.
6 changes: 2 additions & 4 deletions lib/features/news/models/news_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class NewsModel {
String summary;
String content;
String? author;
String image;
String? image;
String type;
Division? division;
List<NewsCategory> categories;
Expand Down Expand Up @@ -37,9 +37,7 @@ class NewsModel {
summary: news.summary ?? 'Leere Zusammenfassung.',
content: news.body.content,
author: null,
// TODO: Use placeholder as long as drupal blocks image access
// image: news.featuredImage?.original.url ?? 'assets/graphics/placeholders/placeholder_1.jpg',
image: 'assets/graphics/placeholders/placeholder_${int.parse(news.id) % 3 + 1}.jpg',
image: news.featuredImage?.original.url,
type: news.categories.firstOrNull?.label ?? '',
division: division,
categories: news.categories,
Expand Down
10 changes: 9 additions & 1 deletion lib/features/news/screens/news_detail_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import 'package:gruene_app/app/utils/format_date.dart';
import 'package:gruene_app/app/utils/open_url.dart';
import 'package:gruene_app/features/news/domain/news_api_service.dart';
import 'package:gruene_app/features/news/models/news_model.dart';
import 'package:gruene_app/features/news/utils/utils.dart';
import 'package:gruene_app/i18n/translations.g.dart';

class NewsDetailScreen extends StatelessWidget {
Expand Down Expand Up @@ -35,7 +36,7 @@ class NewsDetailScreen extends StatelessWidget {
children: [
SizedBox(
height: 288,
child: Image.asset(news.image, fit: BoxFit.cover),
child: featuredImage(news),
),
Container(
padding: EdgeInsets.all(20),
Expand Down Expand Up @@ -91,4 +92,11 @@ class NewsDetailScreen extends StatelessWidget {
},
);
}

Image featuredImage(NewsModel news) {
if (news.image != null) {
return Image.network(news.image!);
}
return Image.asset(getPlaceholderImage(news.id));
}
}
4 changes: 4 additions & 0 deletions lib/features/news/utils/utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,7 @@ bool isCustomFilterSelected(
!(selectedDivisions.length == 1 && selectedDivisions[0].level == DivisionLevel.bv) ||
selectedCategories.isNotEmpty ||
dateRange != null;

String getPlaceholderImage(String id) {
return 'assets/graphics/placeholders/placeholder_${int.parse(id) % 3 + 1}.jpg';
}
13 changes: 9 additions & 4 deletions lib/features/news/widgets/news_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:go_router/go_router.dart';
import 'package:gruene_app/app/theme/theme.dart';
import 'package:gruene_app/app/utils/divisions.dart';
import 'package:gruene_app/features/news/models/news_model.dart';
import 'package:gruene_app/features/news/utils/utils.dart';

const double imageHeight = 160;

Expand Down Expand Up @@ -37,10 +38,7 @@ class NewsCard extends StatelessWidget {
height: imageHeight,
decoration: BoxDecoration(
borderRadius: BorderRadius.vertical(top: Radius.circular(8)),
image: DecorationImage(
image: AssetImage(news.image),
fit: BoxFit.fitWidth,
),
image: featuredImage(news),
),
),
// Linear gradient on teaser image
Expand Down Expand Up @@ -135,4 +133,11 @@ class NewsCard extends StatelessWidget {
),
);
}

DecorationImage featuredImage(NewsModel news) {
return DecorationImage(
image: news.image != null ? NetworkImage(news.image!) : AssetImage(getPlaceholderImage(news.id)),
fit: BoxFit.fitWidth,
);
}
}
2 changes: 1 addition & 1 deletion lib/features/profiles/screens/own_profile_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class OwnProfileScreen extends StatelessWidget {
Iterable<ProfileRole> sherpaRoles = data.roles.where((role) => role.type == ProfileRoleType.role);
Iterable<ProfileTag> skillTags = data.tags.where((tag) => tag.type == ProfileTagType.skill);
DivisionMembership? kvMembership =
data.memberships?.firstWhere((membership) => membership.division.level == DivisionLevel.kv);
data.memberships?.where((membership) => membership.division.level == DivisionLevel.kv).firstOrNull;

return ListView(
children: [
Expand Down

0 comments on commit 8cd4df7

Please sign in to comment.