Shifting AkismetSettingsPart

This commit is contained in:
Sebastien Ros
2013-10-29 11:31:37 -07:00
parent 0957f076f7
commit d4e3664b76
7 changed files with 24 additions and 19 deletions

View File

@@ -1,7 +1,6 @@
using JetBrains.Annotations;
using Orchard.AntiSpam.Models;
using Orchard.ContentManagement;
using Orchard.Data;
using Orchard.ContentManagement.Handlers;
using Orchard.Environment.Extensions;
using Orchard.Localization;
@@ -10,11 +9,10 @@ namespace Orchard.AntiSpam.Handlers {
[UsedImplicitly]
[OrchardFeature("Akismet.Filter")]
public class AkismetSettingsPartHandler : ContentHandler {
public AkismetSettingsPartHandler(IRepository<AkismetSettingsPartRecord> repository) {
public AkismetSettingsPartHandler() {
T = NullLocalizer.Instance;
Filters.Add(new ActivatingFilter<AkismetSettingsPart>("Site"));
Filters.Add(StorageFilter.For(repository));
Filters.Add(new TemplateFilterForRecord<AkismetSettingsPartRecord>("AkismetSettings", "Parts/AntiSpam.AkismetSettings", "spam"));
Filters.Add(new TemplateFilterForPart<AkismetSettingsPart>("AkismetSettings", "Parts/AntiSpam.AkismetSettings", "spam"));
}
public Localizer T { get; set; }

View File

@@ -1,6 +1,15 @@
using Orchard.ContentManagement;
namespace Orchard.AntiSpam.Models {
public class AkismetSettingsPart : ContentPart<AkismetSettingsPartRecord> {
public class AkismetSettingsPart : ContentPart {
public bool TrustAuthenticatedUsers {
get { return bool.Parse(Get("TrustAuthenticatedUsers") ?? "false"); }
set { Set("TrustAuthenticatedUsers", value.ToString()); }
}
public string ApiKey {
get { return Get("ApiKey"); }
set { Set("ApiKey", value); }
}
}
}

View File

@@ -1,11 +0,0 @@
using Orchard.ContentManagement.Records;
namespace Orchard.AntiSpam.Models {
public class AkismetSettingsPartRecord : ContentPartRecord {
public virtual bool TrustAuthenticatedUsers { get; set; }
// API key for the Akismet (http://akismet.com/personal/)
public virtual string ApiKey { get; set; }
}
}

View File

@@ -106,7 +106,6 @@
<Compile Include="Handlers\TypePadSettingsPartHandler.cs" />
<Compile Include="Handlers\SpamFilterPartHandler.cs" />
<Compile Include="Migrations.cs" />
<Compile Include="Models\AkismetSettingsPartRecord.cs" />
<Compile Include="Models\AkismetSettingsPart.cs" />
<Compile Include="Models\CommentCheckContext.cs" />
<Compile Include="Models\ReCaptchaSettingsPart.cs" />

View File

@@ -19,7 +19,7 @@ namespace Orchard.AntiSpam.Services {
public IEnumerable<ISpamFilter> GetSpamFilters() {
var settings = _orchardServices.WorkContext.CurrentSite.As<AkismetSettingsPart>().Record;
var settings = _orchardServices.WorkContext.CurrentSite.As<AkismetSettingsPart>();
if (string.IsNullOrWhiteSpace(settings.ApiKey)) {
yield break;

View File

@@ -1,4 +1,4 @@
@model Orchard.AntiSpam.Models.AkismetSettingsPartRecord
@model Orchard.AntiSpam.Models.AkismetSettingsPart
@using Orchard.Utility.Extensions;
<fieldset>

View File

@@ -76,6 +76,16 @@ namespace Upgrade.Controllers {
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Themes_ThemeSiteSettingsPartRecord"), null);
// AkismetSettingsPartRecord
_upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_AntiSpam_AkismetSettingsPartRecord"),
(reader, connection) => {
site.As<InfosetPart>().Set("AkismetSettingsPart", "TrustAuthenticatedUsers", reader["TrustAuthenticatedUsers"].ToString());
site.As<InfosetPart>().Set("AkismetSettingsPart", "ApiKey", reader["ApiKey"].ToString());
});
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_AntiSpam_AkismetSettingsPartRecord"), null);
_orchardServices.Notifier.Information(T("Site Settings migrated successfully"));
return View();