From d7773f0b448384c67ab6610dec63cba1b2e9c64c Mon Sep 17 00:00:00 2001 From: R Axalan Date: Wed, 21 Jul 2021 13:17:41 -0400 Subject: [PATCH 1/2] Adds Announcement feature and Announcement list page --- .../HackathonMigrations.cs | 28 +++++++++++++++ .../Views/Content-Announcement.liquid | 16 +++++++++ .../Widget-AnnouncementListWidget.liquid | 34 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 src/Modules/StatCan.OrchardCore.Hackathon/Views/Content-Announcement.liquid create mode 100644 src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid diff --git a/src/Modules/StatCan.OrchardCore.Hackathon/HackathonMigrations.cs b/src/Modules/StatCan.OrchardCore.Hackathon/HackathonMigrations.cs index b8876487e..820344290 100644 --- a/src/Modules/StatCan.OrchardCore.Hackathon/HackathonMigrations.cs +++ b/src/Modules/StatCan.OrchardCore.Hackathon/HackathonMigrations.cs @@ -27,6 +27,7 @@ public async Task CreateAsync() CreateUserProfiles(); CreateWidgets(); CreateChallenge(); + CreateAnnouncement(); await _recipeMigrator.ExecuteAsync("queries.recipe.json", this); await _recipeMigrator.ExecuteAsync("roles.recipe.json", this); @@ -89,6 +90,7 @@ private void CreateWidgets() { _contentDefinitionManager.CreateBasicWidget("HackathonCalendar"); _contentDefinitionManager.CreateBasicWidget("ChallengeListWidget"); + _contentDefinitionManager.CreateBasicWidget("AnnouncementListWidget"); } private void CreateChallenge() @@ -104,5 +106,31 @@ private void CreateChallenge() .WithMarkdownBody("2") ); } + + private void CreateAnnouncement() + { + _contentDefinitionManager.AlterTypeDefinition("Announcement", type => type + .DisplayedAs("Announcement") + .Creatable() + .Listable() + .Draftable() + .Securable() + .WithPart("Announcement", part => part + .WithPosition("0") + ) + .WithPart("MarkdownBodyPart", part => part + .WithPosition("1") + .WithEditor("Wysiwyg") + ) + ); + + _contentDefinitionManager.AlterPartDefinition("Announcement", part => part + .WithField("Title", field => field + .OfType("TextField") + .WithDisplayName("Title") + .WithPosition("0") + ) + ); + } } } diff --git a/src/Modules/StatCan.OrchardCore.Hackathon/Views/Content-Announcement.liquid b/src/Modules/StatCan.OrchardCore.Hackathon/Views/Content-Announcement.liquid new file mode 100644 index 000000000..1ee5246d1 --- /dev/null +++ b/src/Modules/StatCan.OrchardCore.Hackathon/Views/Content-Announcement.liquid @@ -0,0 +1,16 @@ +{% assign dateTime = "DateTime" | shape_new: utc: Model.ContentItem.CreatedUtc, format: format | shape_stringify %} + + + + + {{Model.ContentItem.Content.Announcement.Title.Text}} + by {{ Model.ContentItem.Author }} {{dateTime}} + + + {{ Model.Content.MarkdownBodyPart | shape_render }} + + + + + + diff --git a/src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid b/src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid new file mode 100644 index 000000000..83d8c0752 --- /dev/null +++ b/src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid @@ -0,0 +1,34 @@ +{% assign announcements = Queries.GetItemsForHackathon | query: type: "Announcement" %} +{% assign dateTime = "DateTime" | shape_new: utc: Model.ContentItem.CreatedUtc, format: format | shape_stringify %} + +
Team Announcements
+ + + + {% for announcement in announcements %} + {% assign aShape = announcement.ContentItem | shape_build_display %} + {% if announcement.Published == true %} + + + +
+
+ + mdi-clock + {{dateTime}} + mdi-account + {{ Model.ContentItem.Author }} + +
+
+ {{ announcement.ContentItem.Content.Announcement.Title.Text | shortcode }} +
+
+
+ {{ aShape.Content.MarkdownBodyPart | shape_render }} +
+ {% endif %} + {% endfor %} +
+
+
From c59532141b878e1af89d85e8dd3ee859887317b0 Mon Sep 17 00:00:00 2001 From: R Axalan Date: Tue, 3 Aug 2021 12:50:00 -0400 Subject: [PATCH 2/2] Sorts announcement by modified date --- .../Views/Widget-AnnouncementListWidget.liquid | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid b/src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid index 83d8c0752..6b8bb44c9 100644 --- a/src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid +++ b/src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid @@ -1,14 +1,13 @@ -{% assign announcements = Queries.GetItemsForHackathon | query: type: "Announcement" %} -{% assign dateTime = "DateTime" | shape_new: utc: Model.ContentItem.CreatedUtc, format: format | shape_stringify %} +{% assign announcements = Queries.GetItemsForHackathon | query: type: "Announcement" | sort: "ModifiedUtc" | reverse %} -
Team Announcements
- +
Team Announcements
+ {% for announcement in announcements %} + {% assign dateTime = "DateTime" | shape_new: utc: announcement.ModifiedUtc, format: format | shape_stringify %} {% assign aShape = announcement.ContentItem | shape_build_display %} {% if announcement.Published == true %} -
@@ -31,4 +30,4 @@ {% endfor %} - + \ No newline at end of file