Changed issue status to depend on different issue type values

This commit is contained in:
Misha 2015-11-30 18:03:52 +02:00
parent eb15d7f49c
commit 40dc2bd0d9
6 changed files with 49 additions and 51 deletions

View file

@ -35,7 +35,7 @@ import org.libreplan.business.users.entities.User;
public class IssueLog extends ProjectLog { public class IssueLog extends ProjectLog {
private IssueTypeEnum type = IssueTypeEnum.getDefault(); private IssueTypeEnum type = IssueTypeEnum.getDefault();
private IssueStatusEnum status = IssueStatusEnum.getDefault(); private String status;
private LowMediumHighEnum priority = LowMediumHighEnum.getDefault(); private LowMediumHighEnum priority = LowMediumHighEnum.getDefault();
private LowMediumHighEnum severity = LowMediumHighEnum.getDefault(); private LowMediumHighEnum severity = LowMediumHighEnum.getDefault();
private Date dateRaised; private Date dateRaised;
@ -69,11 +69,11 @@ public class IssueLog extends ProjectLog {
this.type = type; this.type = type;
} }
public IssueStatusEnum getStatus() { public String getStatus() {
return status; return status;
} }
public void setStatus(IssueStatusEnum status) { public void setStatus(String status) {
this.status = status; this.status = status;
} }

View file

@ -1,26 +0,0 @@
package org.libreplan.business.logs.entities;
import static org.libreplan.business.i18n.I18nHelper._;
/**
* Defines INVESTIGATING, ESCALATED, RESOLVED enums
* to be used as data type in
* {@link IssueLog}
*
* @author Misha Gozhda <misha@libreplan-enterprise.com>
*/
public enum IssueStatusEnum {
INVESTIGATING(_("INVESTIGATING")), ESCALATED(_("ESCALATED")), RESOLVED(_("RESOLVED"));
private final String issueStatusEnum;
IssueStatusEnum(String issueStatusEnum) {
this.issueStatusEnum = issueStatusEnum;
}
public String getDisplayName() {
return issueStatusEnum;
}
public static IssueStatusEnum getDefault() {
return IssueStatusEnum.INVESTIGATING;
}
}

View file

@ -49,6 +49,9 @@
<property name="dateResolved" column="date_resolved"/> <property name="dateResolved" column="date_resolved"/>
<property name="notes" column="notes" access="field"/> <property name="notes" column="notes" access="field"/>
<property name="status" column="status" access="field"/>
</class> </class>
<class name="RiskLog" table="risk_log"> <class name="RiskLog" table="risk_log">

View file

@ -29,7 +29,6 @@ import org.apache.commons.logging.LogFactory;
import org.libreplan.business.common.exceptions.InstanceNotFoundException; import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.logs.entities.IssueLog; import org.libreplan.business.logs.entities.IssueLog;
import org.libreplan.business.logs.entities.IssueStatusEnum;
import org.libreplan.business.logs.entities.IssueTypeEnum; import org.libreplan.business.logs.entities.IssueTypeEnum;
import org.libreplan.business.logs.entities.LowMediumHighEnum; import org.libreplan.business.logs.entities.LowMediumHighEnum;
import org.libreplan.business.orders.entities.Order; import org.libreplan.business.orders.entities.Order;
@ -46,9 +45,6 @@ import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.*; import org.zkoss.zul.*;
import org.zkoss.zk.ui.Executions;
import javax.swing.*;
/** /**
* Controller for IssueLog CRUD actions * Controller for IssueLog CRUD actions
@ -70,15 +66,17 @@ public class IssueLogCRUDController extends BaseCRUDController<IssueLog> {
private BandboxSearch bdUserIssueLog; private BandboxSearch bdUserIssueLog;
private Listbox status;
@Override @Override
public void doAfterCompose(Component comp) throws Exception { public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp); super.doAfterCompose(comp);
status = (Listbox)comp.getFellow("editWindow").getFellow("listIssueLogStatus");
comp.setVariable("issueLogController", this, true); comp.setVariable("issueLogController", this, true);
showListWindow(); showListWindow();
initializeOrderComponent(); initializeOrderComponent();
initializeUserComponent(); initializeUserComponent();
bdProjectIssueLog.setDisabled(!LogsController.getProjectNameVisibility()); bdProjectIssueLog.setDisabled(!LogsController.getProjectNameVisibility());
} }
/** /**
@ -145,15 +143,8 @@ public class IssueLogCRUDController extends BaseCRUDController<IssueLog> {
item.setLabel(displayName); item.setLabel(displayName);
} }
}; };
public static ListitemRenderer issueStatusRenderer = new ListitemRenderer() {
@Override
public void render(org.zkoss.zul.Listitem item, Object data)
throws Exception {
IssueStatusEnum issueStatusEnum = (IssueStatusEnum) data;
String displayName = issueStatusEnum.getDisplayName();
item.setLabel(displayName);
}
};
public static ListitemRenderer lowMediumHighEnumRenderer = new ListitemRenderer() { public static ListitemRenderer lowMediumHighEnumRenderer = new ListitemRenderer() {
@Override @Override
@ -272,10 +263,35 @@ public class IssueLogCRUDController extends BaseCRUDController<IssueLog> {
} }
/** /**
* Returns {@link IssueStatusEnum} values * Returns {@link ArrayList} values
*/ */
public IssueStatusEnum[] getIssueStatusEnum() { public ArrayList<String> getIssueStatusEnum() {
return IssueStatusEnum.values(); ArrayList<String> result = new ArrayList<String>();
if (getIssueLog().getType() == IssueTypeEnum.REQUEST_FOR_CHANGE){
result.add(_("ESSENTIAL"));
result.add(_("IMPORTANT"));
result.add(_("USEFUL"));
result.add(_("NOT IMPORTANT FOR NOW"));
return result;
}
if (getIssueLog().getType() == IssueTypeEnum.PROBLEM_OR_CONCERN) {
result.add(_("MINOR"));
result.add(_("SIGNIFICANT"));
result.add(_("MAJOR"));
result.add(_("CRITICAL"));
return result;
}
result.add(_("LOW"));
result.add(_("MEDIUM"));
result.add(_("HIGH"));
return result;
}
public void updateStatus() {
ListModelList model = new ListModelList(getIssueStatusEnum());
status.setModel(model);
status.setSelectedItem(status.getItemAtIndex(0));
} }
/** /**

View file

@ -53,13 +53,18 @@
<listbox id="listIssueLogType" mold="select" rows="1" width="230px" <listbox id="listIssueLogType" mold="select" rows="1" width="230px"
model="@{issueLogController.issueTypeEnum}" model="@{issueLogController.issueTypeEnum}"
selectedItem="@{issueLogController.issueLog.type}" selectedItem="@{issueLogController.issueLog.type}"
itemRenderer="@{issueLogController.issueTypeRenderer}" /> itemRenderer="@{issueLogController.issueTypeRenderer}"
onSelect="issueLogController.updateStatus()"/>
<label value="${i18n:_('Status')}" /> <label value="${i18n:_('Status')}" />
<listbox id="listIssueLogStatus" mold="select" rows="1" width="230px" <listbox id="listIssueLogStatus" mold="select" rows="1" width="230px" >
model="@{issueLogController.issueStatusEnum}" <listitem label="LOW" value="LOW" selected="true"></listitem>
<listitem label="MEDIUM" value="MEDIUM"></listitem>
<listitem label="HIGH" value="HIGH"></listitem>
</listbox>
<!--model="@{issueLogController.issueStatusEnum}"
selectedItem="@{issueLogController.issueLog.status}" selectedItem="@{issueLogController.issueLog.status}"
itemRenderer="@{issueLogController.issueStatusRenderer}" /> itemRenderer="@{issueLogController.issueStatusRenderer}" -->
</row> </row>
</rows> </rows>
</grid> </grid>