ItEr38S14CUIntroducionPartesTraballoManualmenteItEr37S19 : Refactoring the work reports list using DTOs to sort it.
This commit is contained in:
parent
32e2b77462
commit
ade89cad76
6 changed files with 142 additions and 19 deletions
|
|
@ -28,6 +28,9 @@ import org.navalplanner.web.common.entrypoints.EntryPoints;
|
|||
@EntryPoints(page = "/workreports/workReport.zul", registerAs = "workReportCRUD")
|
||||
public interface IWorkReportCRUDControllerEntryPoints {
|
||||
|
||||
@EntryPoint("editDTO")
|
||||
public abstract void goToEditForm(WorkReportDTO workReportDTO);
|
||||
|
||||
@EntryPoint("edit")
|
||||
public abstract void goToEditForm(WorkReport workReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ public interface IWorkReportModel {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
List<WorkReport> getWorkReports();
|
||||
List<WorkReportDTO> getWorkReportDTOs();
|
||||
|
||||
/**
|
||||
* Returns true if WorkReport is being edited
|
||||
|
|
@ -196,5 +196,4 @@ public interface IWorkReportModel {
|
|||
* @return
|
||||
*/
|
||||
Integer getLength(DescriptionValue descriptionValue);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,8 +135,10 @@ public class WorkReportCRUDController extends GenericForwardComposer implements
|
|||
*
|
||||
* @param workReport
|
||||
*/
|
||||
public void showConfirmDelete(WorkReport workReport) {
|
||||
public void showConfirmDelete(WorkReportDTO workReportDTO) {
|
||||
WorkReport workReport = workReportDTO.getWorkReport();
|
||||
try {
|
||||
|
||||
final String workReportName = formatWorkReportName(workReport);
|
||||
int status = Messagebox.show(_("Confirm deleting {0}. Are you sure?", workReportName), "Delete",
|
||||
Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION);
|
||||
|
|
@ -155,8 +157,8 @@ public class WorkReportCRUDController extends GenericForwardComposer implements
|
|||
return workReport.getWorkReportType().getName();
|
||||
}
|
||||
|
||||
public List<WorkReport> getWorkReports() {
|
||||
return workReportModel.getWorkReports();
|
||||
public List<WorkReportDTO> getWorkReportDTOs() {
|
||||
return workReportModel.getWorkReportDTOs();
|
||||
}
|
||||
|
||||
private OnlyOneVisible getVisibility() {
|
||||
|
|
@ -439,6 +441,11 @@ public class WorkReportCRUDController extends GenericForwardComposer implements
|
|||
Util.reloadBindings(createWindow);
|
||||
}
|
||||
|
||||
public void goToEditForm(WorkReportDTO workReportDTO) {
|
||||
WorkReport workReport = workReportDTO.getWorkReport();
|
||||
goToEditForm(workReport);
|
||||
}
|
||||
|
||||
public void goToEditForm(WorkReport workReport) {
|
||||
workReportModel.initEdit(workReport);
|
||||
loadComponents(createWindow);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,105 @@
|
|||
package org.navalplanner.web.workreports;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import org.navalplanner.business.workreports.entities.WorkReport;
|
||||
import org.navalplanner.business.workreports.entities.WorkReportLine;
|
||||
|
||||
public class WorkReportDTO {
|
||||
|
||||
public WorkReportDTO(WorkReport workReport) {
|
||||
this.workReport = workReport;
|
||||
this.dateStart = this.getDateStartWorkReport(workReport);
|
||||
this.dateFinish = this.getDateFinishWorkReport(workReport);
|
||||
this.type = workReport.getWorkReportType().getName();
|
||||
}
|
||||
|
||||
private WorkReport workReport;
|
||||
|
||||
private Date dateStart;
|
||||
|
||||
private Date dateFinish;
|
||||
|
||||
private String type;
|
||||
|
||||
public WorkReport getWorkReport() {
|
||||
return workReport;
|
||||
}
|
||||
|
||||
public void setWorkReport(WorkReport workReport) {
|
||||
this.workReport = workReport;
|
||||
}
|
||||
|
||||
public Date getDateStart() {
|
||||
return dateStart;
|
||||
}
|
||||
|
||||
public void setDateStart(Date dateStart) {
|
||||
this.dateStart = dateStart;
|
||||
}
|
||||
|
||||
public Date getDateFinish() {
|
||||
return dateFinish;
|
||||
}
|
||||
|
||||
public void setDateFinish(Date dateFinish) {
|
||||
this.dateFinish = dateFinish;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public Date getDateStartWorkReport(WorkReport workReport) {
|
||||
if (workReport != null) {
|
||||
|
||||
if (workReport.getWorkReportType().getDateIsSharedByLines()) {
|
||||
return workReport.getDate();
|
||||
}
|
||||
|
||||
// find the start date in its lines
|
||||
Date dateStart = null;
|
||||
if (workReport.getWorkReportLines().size() > 0) {
|
||||
WorkReportLine line0 = (WorkReportLine) workReport
|
||||
.getWorkReportLines().toArray()[0];
|
||||
dateStart = line0.getDate();
|
||||
for (WorkReportLine line : workReport.getWorkReportLines()) {
|
||||
if ((dateStart != null) && (line.getDate() != null)
|
||||
&& (line.getDate().before(dateStart))) {
|
||||
dateStart = line.getDate();
|
||||
}
|
||||
}
|
||||
}
|
||||
return dateStart;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Date getDateFinishWorkReport(WorkReport workReport) {
|
||||
if (workReport != null) {
|
||||
if (workReport.getWorkReportType().getDateIsSharedByLines()) {
|
||||
return workReport.getDate();
|
||||
}
|
||||
|
||||
Date dateFinish = null;
|
||||
if (workReport.getWorkReportLines().size() > 0) {
|
||||
WorkReportLine line0 = (WorkReportLine) workReport
|
||||
.getWorkReportLines().toArray()[0];
|
||||
dateFinish = line0.getDate();
|
||||
for (WorkReportLine line : workReport.getWorkReportLines()) {
|
||||
if ((dateFinish != null) && (line.getDate() != null)
|
||||
&& (line.getDate().after(dateFinish))) {
|
||||
dateFinish = line.getDate();
|
||||
}
|
||||
}
|
||||
}
|
||||
return dateFinish;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -247,7 +247,18 @@ public class WorkReportModel implements IWorkReportModel {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public List<WorkReport> getWorkReports() {
|
||||
public List<WorkReportDTO> getWorkReportDTOs() {
|
||||
// load the work reports
|
||||
List<WorkReport> listWorkReports = getAllWorkReports();
|
||||
List<WorkReportDTO> resultDTOs = new ArrayList<WorkReportDTO>();
|
||||
for (WorkReport workReport : listWorkReports) {
|
||||
WorkReportDTO workReportDTO = new WorkReportDTO(workReport);
|
||||
resultDTOs.add(workReportDTO);
|
||||
}
|
||||
return resultDTOs;
|
||||
}
|
||||
|
||||
private List<WorkReport> getAllWorkReports() {
|
||||
List<WorkReport> result = new ArrayList<WorkReport>();
|
||||
for (WorkReport each : workReportDAO.list(WorkReport.class)) {
|
||||
each.getWorkReportType().getName();
|
||||
|
|
|
|||
|
|
@ -19,21 +19,19 @@
|
|||
-->
|
||||
|
||||
<window id="${arg.top_id}" title="${i18n:_('Work report listing')}">
|
||||
<newdatasortablegrid id="listing" model="@{controller.workReports}" mold="paging"
|
||||
pageSize="10">
|
||||
<grid id="listing" mold="paging" pageSize="10"
|
||||
model="@{controller.workReportDTOs}">
|
||||
<columns sizable="true">
|
||||
<newdatasortablecolumn label="${i18n:_('Date')}" sort="auto(date)" />
|
||||
<newdatasortablecolumn label="${i18n:_('Resource')}" sort="auto(resource)" />
|
||||
<newdatasortablecolumn label="${i18n:_('Order code')}" sort="auto(orderElement)" />
|
||||
<newdatasortablecolumn label="${i18n:_('Type')}" sort="auto(workReportType.name)"/>
|
||||
<newdatasortablecolumn label="${i18n:_('Actions')}" />
|
||||
<column label="${i18n:_('Date Start')}" sort="auto(dateStart)"/>
|
||||
<column label="${i18n:_('Date Finish')}" sort="auto(dateFinish)"/>
|
||||
<column label="${i18n:_('Type')}" sort="auto(type)"/>
|
||||
<column label="${i18n:_('Actions')}" />
|
||||
</columns>
|
||||
<rows>
|
||||
<row self="@{each='workReport'}" value="@{workReport}">
|
||||
<label value="@{workReport.date, converter='org.navalplanner.web.common.typeconverters.DateConverter'}" />
|
||||
<label value="@{workReport.resource.description}" />
|
||||
<label value="@{workReport.orderElement.name}" />
|
||||
<label value="@{workReport.workReportType.name}" />
|
||||
<row self="@{each='workReportDTO'}" value="@{workReportDTO}">
|
||||
<label value="@{workReportDTO.dateStart, converter='org.navalplanner.web.common.typeconverters.DateConverter'}" />
|
||||
<label value="@{workReportDTO.dateFinish, converter='org.navalplanner.web.common.typeconverters.DateConverter'}"/>
|
||||
<label value="@{workReportDTO.type}" />
|
||||
|
||||
<hbox>
|
||||
<button sclass="icono" image="/common/img/ico_editar1.png"
|
||||
|
|
@ -50,5 +48,5 @@
|
|||
</hbox>
|
||||
</row>
|
||||
</rows>
|
||||
</newdatasortablegrid>
|
||||
</grid>
|
||||
</window>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue