updates for NIHVIVO-3517 "Template exception thrown when deleting either hasEditorRole or hasReviewerRole properties". Updated EditConfigurationTemplateModel to return ObjectPropertyTemplateModel representing property and Freemarker template to assign that object to the variable "property" so the list view for reviewer/editor would work correctly.

This commit is contained in:
hjkhjk54 2011-12-16 19:31:49 +00:00
parent 555d32bb91
commit 4de612a306
4 changed files with 17 additions and 9 deletions

View file

@ -40,6 +40,7 @@ import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.EditingPolicyHelper;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.ObjectPropertyStatementTemplateModel;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.ObjectPropertyTemplateModel;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.PropertyStatementTemplateModel;
import freemarker.ext.beans.BeansWrapper;
import freemarker.template.DefaultObjectWrapper;
@ -457,13 +458,18 @@ public class EditConfigurationTemplateModel extends BaseTemplateModel {
null, null, vreq);
ReadOnlyBeansWrapper wrapper = new ReadOnlyBeansWrapper();
return wrapper.wrap(osm);
/* TemplateModel tm = null;
try {
tm = wrapper.wrap(osm);
} catch(Exception ex) {
log.error("Error occurred in wrapping object property statement model", ex);
}
return tm;*/
//HasEditor and HasReviewer Roles also expect the Property template model to be passed
public TemplateModel getObjectPropertyStatementDisplayPropertyModel() throws TemplateModelException {
Individual subject = EditConfigurationUtils.getSubjectIndividual(vreq);
ObjectProperty op = EditConfigurationUtils.getObjectProperty(vreq);
List<ObjectProperty> propList = new ArrayList<ObjectProperty>();
propList.add(op);
EditingPolicyHelper policyHelper = new EditingPolicyHelper(vreq);
ObjectPropertyTemplateModel otm = ObjectPropertyTemplateModel.getObjectPropertyTemplateModel(op, subject, vreq, policyHelper,propList);
ReadOnlyBeansWrapper wrapper = new ReadOnlyBeansWrapper();
return wrapper.wrap(otm);
}
public String getDataStatementDisplay() {

View file

@ -20,7 +20,7 @@ public class EditingPolicyHelper {
private final PolicyIface policy;
private final IdentifierBundle ids;
protected EditingPolicyHelper(VitroRequest vreq) {
public EditingPolicyHelper(VitroRequest vreq) {
this.policy = RequestPolicyList.getPolicies(vreq);
this.ids = RequestIdentifiers.getIdBundleForRequest(vreq);
}

View file

@ -208,7 +208,7 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
return object;
}
protected static ObjectPropertyTemplateModel getObjectPropertyTemplateModel(ObjectProperty op,
public static ObjectPropertyTemplateModel getObjectPropertyTemplateModel(ObjectProperty op,
Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper,
List<ObjectProperty> populatedObjectPropertyList) {

View file

@ -6,6 +6,8 @@
<#assign toBeDeletedClass = "objProp" />
<#if editConfiguration.objectStatementDisplay?has_content>
<#assign statement = editConfiguration.objectStatementDisplay />
<#--Reviewer and editor role list views required object property template model object for property-->
<#assign property = editConfiguration.objectPropertyStatementDisplayPropertyModel />
</#if>
<#else>
<#assign statement = editConfiguration.dataStatementDisplay />