temporary branch

This commit is contained in:
BACHIR SOULDI
2024-10-17 11:30:20 +01:00
parent cd115a234b
commit 742ec3e75e
212 changed files with 18396 additions and 1899 deletions

View File

@@ -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;
}
}

View File

@@ -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 -->

View File

@@ -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>