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..6b8bb44c9 --- /dev/null +++ b/src/Modules/StatCan.OrchardCore.Hackathon/Views/Widget-AnnouncementListWidget.liquid @@ -0,0 +1,33 @@ +{% assign announcements = Queries.GetItemsForHackathon | query: type: "Announcement" | sort: "ModifiedUtc" | reverse %} + +
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 %} + + +
+
+ + mdi-clock + {{dateTime}} + mdi-account + {{ Model.ContentItem.Author }} + +
+
+ {{ announcement.ContentItem.Content.Announcement.Title.Text | shortcode }} +
+
+
+ {{ aShape.Content.MarkdownBodyPart | shape_render }} +
+ {% endif %} + {% endfor %} +
+
+
\ No newline at end of file