Skip to content

Commit

Permalink
#412 Added ability to show date for pre-order availability in public…
Browse files Browse the repository at this point in the history
… store
  • Loading branch information
skoshelev committed Jun 13, 2018
1 parent d87f26a commit 773c85e
Show file tree
Hide file tree
Showing 11 changed files with 66 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/Libraries/Nop.Core/Domain/Catalog/CatalogSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -452,5 +452,10 @@ public CatalogSettings()
/// Gets or sets count of displayed years for datepicker
/// </summary>
public int CountDisplayedYearsDatePicker { get; set; }

/// <summary>
/// Get or set a value indicating whether it's necessary to show the date for pre-order availability in a public store
/// </summary>
public bool DisplayDatePreOrderAvailability { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5318,7 +5318,13 @@
</LocaleResource>
<LocaleResource Name="Admin.Configuration.Settings.Catalog.DefaultViewMode.Hint">
<Value>Choose the default view mode for catalog pages.</Value>
</LocaleResource>
</LocaleResource>
<LocaleResource Name="Admin.Configuration.Settings.Catalog.DisplayDatePreOrderAvailability">
<Value>Display the date for a pre-order availability</Value>
</LocaleResource>
<LocaleResource Name="Admin.Configuration.Settings.Catalog.DisplayDatePreOrderAvailability.Hint">
<Value>Check to display the date for pre-order availability.</Value>
</LocaleResource>
<LocaleResource Name="Admin.Configuration.Settings.Catalog.DisplayDiscontinuedMessageForUnpublishedProducts">
<Value>Discontinued message for unpublished products</Value>
</LocaleResource>
Expand Down Expand Up @@ -17244,6 +17250,9 @@
<LocaleResource Name="ShoppingCart.PreOrder">
<Value>Pre-order</Value>
</LocaleResource>
<LocaleResource Name="ShoppingCart.PreOrderAvailability">
<Value>pre-order availability</Value>
</LocaleResource>
<LocaleResource Name="ShoppingCart.Product(s)">
<Value>Product(s)</Value>
</LocaleResource>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,7 @@ public virtual IActionResult Catalog(CatalogSettingsModel model)
_settingService.SaveSettingOverridablePerStore(catalogSettings, x => x.ExportImportSplitProductsFile, model.ExportImportSplitProductsFile_OverrideForStore, storeScope, false);
_settingService.SaveSettingOverridablePerStore(catalogSettings, x => x.RemoveRequiredProducts, model.RemoveRequiredProducts_OverrideForStore, storeScope, false);
_settingService.SaveSettingOverridablePerStore(catalogSettings, x => x.ExportImportRelatedEntitiesByName, model.ExportImportRelatedEntitiesByName_OverrideForStore, storeScope, false);
_settingService.SaveSettingOverridablePerStore(catalogSettings, x => x.DisplayDatePreOrderAvailability, model.DisplayDatePreOrderAvailability_OverrideForStore, storeScope, false);

//now settings not overridable per store
_settingService.SaveSetting(catalogSettings, x => x.IgnoreDiscounts, 0, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -988,6 +988,7 @@ public virtual CatalogSettingsModel PrepareCatalogSettingsModel()
model.ExportImportSplitProductsFile_OverrideForStore = _settingService.SettingExists(catalogSettings, x => x.ExportImportSplitProductsFile, storeId);
model.RemoveRequiredProducts_OverrideForStore = _settingService.SettingExists(catalogSettings, x => x.RemoveRequiredProducts, storeId);
model.ExportImportRelatedEntitiesByName_OverrideForStore = _settingService.SettingExists(catalogSettings, x => x.ExportImportRelatedEntitiesByName, storeId);
model.DisplayDatePreOrderAvailability_OverrideForStore = _settingService.SettingExists(catalogSettings, x => x.DisplayDatePreOrderAvailability, storeId);
}

//prepare nested search model
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -967,7 +967,8 @@ public AdminMapperConfiguration()
.ForMember(dest => dest.Form, mo => mo.Ignore())
.ForMember(dest => dest.ExportImportSplitProductsFile_OverrideForStore, mo => mo.Ignore())
.ForMember(dest => dest.RemoveRequiredProducts_OverrideForStore, mo => mo.Ignore())
.ForMember(dest => dest.ExportImportRelatedEntitiesByName_OverrideForStore, mo => mo.Ignore());
.ForMember(dest => dest.ExportImportRelatedEntitiesByName_OverrideForStore, mo => mo.Ignore())
.ForMember(dest => dest.DisplayDatePreOrderAvailability_OverrideForStore, mo => mo.Ignore());
CreateMap<CatalogSettingsModel, CatalogSettings>()
.ForMember(dest => dest.PublishBackProductWhenCancellingOrders, mo => mo.Ignore())
.ForMember(dest => dest.DefaultProductRatingValue, mo => mo.Ignore())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,10 @@ public CatalogSettingsModel()
[NopResourceDisplayName("Admin.Configuration.Settings.Catalog.CacheProductPrices")]
public bool CacheProductPrices { get; set; }

[NopResourceDisplayName("Admin.Configuration.Settings.Catalog.DisplayDatePreOrderAvailability")]
public bool DisplayDatePreOrderAvailability { get; set; }
public bool DisplayDatePreOrderAvailability_OverrideForStore { get; set; }

public SortOptionSearchModel SortOptionSearchModel { get; set; }

#endregion
Expand Down
10 changes: 10 additions & 0 deletions src/Presentation/Nop.Web/Areas/Admin/Views/Setting/Catalog.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,16 @@
</div>
</div>
</nop-nested-setting>
<div class="form-group">
<div class="col-md-3">
<nop-override-store-checkbox asp-for="DisplayDatePreOrderAvailability_OverrideForStore" asp-input="DisplayDatePreOrderAvailability" asp-store-scope="@Model.ActiveStoreScopeConfiguration" />
<nop-label asp-for="DisplayDatePreOrderAvailability" />
</div>
<div class="col-md-9">
<nop-editor asp-for="DisplayDatePreOrderAvailability" />
<span asp-validation-for="DisplayDatePreOrderAvailability"></span>
</div>
</div>
</div>
</div>
<div class="panel panel-default advanced-setting">
Expand Down
6 changes: 6 additions & 0 deletions src/Presentation/Nop.Web/Factories/ProductModelFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -696,6 +696,12 @@ protected virtual ProductDetailsModel.AddToCartModel PrepareProductAddToCartMode
model.AvailableForPreOrder = !product.PreOrderAvailabilityStartDateTimeUtc.HasValue ||
product.PreOrderAvailabilityStartDateTimeUtc.Value >= DateTime.UtcNow;
model.PreOrderAvailabilityStartDateTimeUtc = product.PreOrderAvailabilityStartDateTimeUtc;

if (model.PreOrderAvailabilityStartDateTimeUtc.HasValue && _catalogSettings.DisplayDatePreOrderAvailability)
{
model.PreOrderAvailabilityStartDateTimeUserTime =
_dateTimeHelper.ConvertToUserTime(model.PreOrderAvailabilityStartDateTimeUtc.Value).ToString("D");
}
}
//rental
model.IsRental = product.IsRental;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ public AddToCartModel()
//pre-order
public bool AvailableForPreOrder { get; set; }
public DateTime? PreOrderAvailabilityStartDateTimeUtc { get; set; }
public string PreOrderAvailabilityStartDateTimeUserTime { get; set; }

//updating existing shopping cart or wishlist item?
public int UpdatedShoppingCartItemId { get; set; }
Expand Down
9 changes: 9 additions & 0 deletions src/Presentation/Nop.Web/Views/Product/_AddToCart.cshtml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
@model ProductDetailsModel.AddToCartModel
@using Nop.Core.Domain.Catalog
@using Nop.Core.Domain.Orders
@inject CatalogSettings catalogSettings
@if (Model.UpdatedShoppingCartItemId > 0)
{
<input asp-for="UpdatedShoppingCartItemId" type="hidden"/>
Expand Down Expand Up @@ -68,6 +70,13 @@
<input type="button" id="add-to-cart-button-@Model.ProductId" class="button-1 add-to-cart-button" value="@addToCartText" data-productid="@Model.ProductId" onclick="AjaxCart.addproducttocart_details('@Url.RouteUrl("AddProductToCart-Details", new {productId = Model.ProductId, shoppingCartTypeId = (int) ShoppingCartType.ShoppingCart})', '#product-details-form');return false;"/>
}
</div>
if (!string.IsNullOrEmpty(Model.PreOrderAvailabilityStartDateTimeUserTime))
{
<div>
<label>@T("ShoppingCart.PreOrderAvailability"):</label>
@Html.Raw(Model.PreOrderAvailabilityStartDateTimeUserTime)
</div>
}
}
@await Component.InvokeAsync("Widget", new { widgetZone = PublicWidgetZones.ProductDetailsAddInfo, additionalData = Model })
</div>
Expand Down
17 changes: 17 additions & 0 deletions upgradescripts/4.00-4.10 (under development)/upgrade.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1169,6 +1169,15 @@ set @resources='
<LocaleResource Name="Admin.Configuration.Settings.Catalog.ShowLinkToAllResultInSearchAutoComplete.Hint">
<Value>Determines whether the link to all results should be displayed in the autocomplete search box. Displayed if the number of items found is greater than the displayed quantity in the autocomplete box.</Value>
</LocaleResource>
<LocaleResource Name="ShoppingCart.PreOrderAvailability">
<Value>pre-order availability</Value>
</LocaleResource>
<LocaleResource Name="Admin.Configuration.Settings.Catalog.DisplayDatePreOrderAvailability">
<Value>Display the date for a pre-order availability</Value>
</LocaleResource>
<LocaleResource Name="Admin.Configuration.Settings.Catalog.DisplayDatePreOrderAvailability.Hint">
<Value>Check to display the date for pre-order availability.</Value>
</LocaleResource>
</Language>
'

Expand Down Expand Up @@ -2949,4 +2958,12 @@ GO
ALTER TABLE [dbo].[PictureBinary] WITH CHECK ADD CONSTRAINT [FK_PictureBinary_Picture_PictureId] FOREIGN KEY(PictureId)
REFERENCES [dbo].[Picture] ([Id])
ON DELETE CASCADE
GO

--new setting
IF NOT EXISTS (SELECT 1 FROM [Setting] WHERE [name] = N'catalogsettings.displaydatepreorderavailability')
BEGIN
INSERT [Setting] ([Name], [Value], [StoreId])
VALUES (N'catalogsettings.displaydatepreorderavailability', N'False', 0)
END
GO

0 comments on commit 773c85e

Please sign in to comment.