diff --git a/.hgsubstate b/.hgsubstate
index bb8b9c489..1fd83459a 100644
--- a/.hgsubstate
+++ b/.hgsubstate
@@ -1,5 +1,5 @@
1e6a2d32657e96db406ad54c318e09c1fe2ed889 src/Orchard.Web/Modules/Orchard.Forms
-4d999d9b380e32e74f5ef1339bf883c18586f395 src/Orchard.Web/Modules/Orchard.Projections
+465ac29c0285497155bf93c0322ddfc5577ac322 src/Orchard.Web/Modules/Orchard.Projections
15cec8c8d8791c108e1f63f40b2357c6bc6605e7 src/Orchard.Web/Modules/Orchard.Rules
65057c6a5cd71f7994ba9bcbeece50dbb737620e src/Orchard.Web/Modules/Orchard.TaskLease
ebdcbf2c57f9f888dcdc2b577a1e9c6e8f9c1957 src/Orchard.Web/Modules/Orchard.Tokens
diff --git a/src/Orchard.Tests/ContentManagement/Drivers/FieldStorage/InfosetFieldStorageProviderTests.cs b/src/Orchard.Tests/ContentManagement/Drivers/FieldStorage/InfosetFieldStorageProviderTests.cs
index 0b9a937f2..f6b95d617 100644
--- a/src/Orchard.Tests/ContentManagement/Drivers/FieldStorage/InfosetFieldStorageProviderTests.cs
+++ b/src/Orchard.Tests/ContentManagement/Drivers/FieldStorage/InfosetFieldStorageProviderTests.cs
@@ -100,7 +100,7 @@ namespace Orchard.Tests.ContentManagement.Drivers.FieldStorage {
storage.Set(null, "one");
storage.Set("alpha", "two");
- Assert.That(part.ContentItem.Record.Data, Is.EqualTo("one"));
+ Assert.That(part.ContentItem.VersionRecord.Data, Is.EqualTo("one"));
}
[Test]
@@ -111,8 +111,8 @@ namespace Orchard.Tests.ContentManagement.Drivers.FieldStorage {
storage.Set(null, "one");
storage.Set("alpha", "two");
- Assert.That(part.ContentItem.Record.Data, Is.EqualTo("one"));
- part.ContentItem.Record.Data = "three";
+ Assert.That(part.ContentItem.VersionRecord.Data, Is.EqualTo("one"));
+ part.ContentItem.VersionRecord.Data = "three";
storage.Set(null, "three");
storage.Set("alpha", "four");
diff --git a/src/Orchard/ContentManagement/FieldStorage/IFieldStorageEvents.cs b/src/Orchard/ContentManagement/FieldStorage/IFieldStorageEvents.cs
index b7b5c503f..549415482 100644
--- a/src/Orchard/ContentManagement/FieldStorage/IFieldStorageEvents.cs
+++ b/src/Orchard/ContentManagement/FieldStorage/IFieldStorageEvents.cs
@@ -41,17 +41,19 @@ namespace Orchard.ContentManagement.FieldStorage {
public void Set(string name, T value) {
_concreteStorage.Set(name, value);
- var context = new FieldStorageEventContext {
- FieldName = _contentPartFieldDefinition.Name,
- PartName = _contentPart.PartDefinition.Name,
- Value = value,
- ValueName = name,
- ValueType = typeof(T),
- Content = _contentPart
- };
+ if (_contentPart.ContentItem.IsPublished()) {
+ var context = new FieldStorageEventContext {
+ FieldName = _contentPartFieldDefinition.Name,
+ PartName = _contentPart.PartDefinition.Name,
+ Value = value,
+ ValueName = name,
+ ValueType = typeof (T),
+ Content = _contentPart
+ };
- foreach (var fieldEvent in _events) {
- fieldEvent.SetCalled(context);
+ foreach (var fieldEvent in _events) {
+ fieldEvent.SetCalled(context);
+ }
}
}
}
diff --git a/src/Orchard/ContentManagement/FieldStorage/InfosetStorage/InfosetStorageProvider.cs b/src/Orchard/ContentManagement/FieldStorage/InfosetStorage/InfosetStorageProvider.cs
index cb525ba95..ccd197c06 100644
--- a/src/Orchard/ContentManagement/FieldStorage/InfosetStorage/InfosetStorageProvider.cs
+++ b/src/Orchard/ContentManagement/FieldStorage/InfosetStorage/InfosetStorageProvider.cs
@@ -14,8 +14,8 @@ namespace Orchard.ContentManagement.FieldStorage.InfosetStorage {
var infosetPart = contentPart.As();
return new SimpleFieldStorage(
- (name, valueType) => Get(infosetPart.Infoset.Element, partName, fieldName, name),
- (name, valueType, value) => Set(infosetPart.Infoset.Element, partName, fieldName, name, value));
+ (name, valueType) => Get(infosetPart.ContentItem.IsPublished() ? infosetPart.Infoset.Element : infosetPart.VersionInfoset.Element, partName, fieldName, name),
+ (name, valueType, value) => Set(infosetPart.ContentItem.IsPublished() ? infosetPart.Infoset.Element : infosetPart.VersionInfoset.Element, partName, fieldName, name, value));
}
private static string Get(XElement element, string partName, string fieldName, string valueName) {