temporary branch
This commit is contained in:
@@ -29,19 +29,23 @@ import com.axelor.apps.project.exception.IExceptionMessage;
|
||||
import com.axelor.apps.project.translation.ITranslation;
|
||||
import com.axelor.auth.AuthUtils;
|
||||
import com.axelor.auth.db.User;
|
||||
import com.axelor.common.ObjectUtils;
|
||||
import com.axelor.db.JPA;
|
||||
import com.axelor.exception.AxelorException;
|
||||
import com.axelor.exception.db.repo.TraceBackRepository;
|
||||
import com.axelor.i18n.I18n;
|
||||
import com.axelor.inject.Beans;
|
||||
import com.axelor.team.db.TeamTask;
|
||||
import com.axelor.team.db.repo.TeamTaskRepository;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.persist.Transactional;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import javax.persistence.TypedQuery;
|
||||
@@ -207,12 +211,25 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
projectRepository.save(project);
|
||||
|
||||
Set<TaskTemplate> taskTemplateSet = projectTemplate.getTaskTemplateSet();
|
||||
if (ObjectUtils.isEmpty(taskTemplateSet)) {
|
||||
return project;
|
||||
}
|
||||
List<TaskTemplate> taskTemplateList = new ArrayList<TaskTemplate>(taskTemplateSet);
|
||||
Collections.sort(
|
||||
taskTemplateList,
|
||||
new Comparator<TaskTemplate>() {
|
||||
|
||||
if (taskTemplateSet != null) {
|
||||
Iterator<TaskTemplate> taskTemplateItr = taskTemplateSet.iterator();
|
||||
@Override
|
||||
public int compare(TaskTemplate taskTemplatet1, TaskTemplate taskTemplate2) {
|
||||
return taskTemplatet1.getParentTaskTemplate() == null || taskTemplate2 == null
|
||||
? 1
|
||||
: taskTemplatet1.getParentTaskTemplate().equals(taskTemplate2) ? -1 : 1;
|
||||
}
|
||||
});
|
||||
|
||||
while (taskTemplateItr.hasNext()) {
|
||||
createTask(taskTemplateItr.next(), project);
|
||||
if (taskTemplateList != null) {
|
||||
for (TaskTemplate taskTemplate : taskTemplateList) {
|
||||
createTask(taskTemplate, project, taskTemplateSet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,12 +238,67 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
}
|
||||
|
||||
public TeamTask createTask(TaskTemplate taskTemplate, Project project) {
|
||||
System.out.println("***********No parent*******************");
|
||||
System.out.println(project.getId());
|
||||
TeamTask task =
|
||||
teamTaskProjectService.create(
|
||||
taskTemplate.getName(), project, taskTemplate.getAssignedTo());
|
||||
task.setDescription(taskTemplate.getDescription());
|
||||
task.setTaskTemplate(taskTemplate);
|
||||
|
||||
return task;
|
||||
}
|
||||
|
||||
public TeamTask createTask(
|
||||
TaskTemplate taskTemplate, TaskTemplate parentTaskTemplate, Project project) {
|
||||
|
||||
System.out.println("***********parent*******************");
|
||||
System.out.println(project.getId());
|
||||
TeamTask task =
|
||||
teamTaskProjectService.create(
|
||||
taskTemplate.getName(), project, taskTemplate.getAssignedTo());
|
||||
|
||||
TeamTask parent =
|
||||
Beans.get(TeamTaskRepository.class)
|
||||
.all()
|
||||
.fetch()
|
||||
.stream()
|
||||
.filter(
|
||||
t -> {
|
||||
return t.getProject().getId() == project.getId()
|
||||
&& t.getTaskTemplate().getId() == parentTaskTemplate.getId();
|
||||
})
|
||||
.findFirst()
|
||||
.get();
|
||||
|
||||
task.setDescription(taskTemplate.getDescription());
|
||||
task.setTaskTemplate(taskTemplate);
|
||||
task.setParentTask(parent);
|
||||
|
||||
return task;
|
||||
}
|
||||
|
||||
public TeamTask createTask(
|
||||
TaskTemplate taskTemplate, Project project, Set<TaskTemplate> taskTemplateSet) {
|
||||
|
||||
if (!ObjectUtils.isEmpty(project.getTeamTaskList())) {
|
||||
for (TeamTask projectTask : project.getTeamTaskList()) {
|
||||
if (projectTask.getName().equals(taskTemplate.getName())) {
|
||||
return projectTask;
|
||||
}
|
||||
}
|
||||
}
|
||||
TeamTask task =
|
||||
teamTaskProjectService.create(
|
||||
taskTemplate.getName(), project, taskTemplate.getAssignedTo());
|
||||
task.setDescription(taskTemplate.getDescription());
|
||||
|
||||
TaskTemplate parentTaskTemplate = taskTemplate.getParentTaskTemplate();
|
||||
|
||||
if (parentTaskTemplate != null && taskTemplateSet.contains(parentTaskTemplate)) {
|
||||
task.setParentTask(this.createTask(parentTaskTemplate, project, taskTemplateSet));
|
||||
return task;
|
||||
}
|
||||
return task;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<decimal name="quantity" title="Quantity"/>
|
||||
<decimal name="unitPrice" title="Unit price" />
|
||||
<many-to-one name="currency" ref="com.axelor.apps.base.db.Currency" title="Currency" index="false"/>
|
||||
<many-to-one name="taskTemplate" title="Task Template" ref="com.axelor.apps.project.db.TaskTemplate" />
|
||||
|
||||
<!-- Gantt view fields -->
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
<entity name="Wiki">
|
||||
<string name="title"/>
|
||||
<string name="content" large="true"/>
|
||||
<boolean name="isImport" title="Is import" default="false" />
|
||||
<many-to-one name="project" ref="com.axelor.apps.project.db.Project" title="Project"/>
|
||||
<many-to-one name="projectTemplate" ref="com.axelor.apps.project.db.ProjectTemplate" title="Project template"/>
|
||||
</entity>
|
||||
|
||||
Reference in New Issue
Block a user