First commit waiting for Budget Alert

This commit is contained in:
2025-09-04 13:37:35 +01:00
commit 2d681f27f5
4563 changed files with 1061534 additions and 0 deletions

View File

@ -0,0 +1,25 @@
apply plugin: "com.axelor.app-module"
apply from: "../version.gradle"
apply {
version = openSuiteVersion
}
axelor {
title "Axelor Project"
description "Axelor Project Module"
}
dependencies {
compile project(":modules:axelor-base")
}
task copyWebapp(type: Copy) {
destinationDir = file(rootProject.buildDir)
into("webapp/project") {
from "src/main/webapp"
}
}
rootProject.tasks.war.dependsOn copyWebapp

View File

@ -0,0 +1,32 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.csv.script;
import com.axelor.inject.Beans;
import com.axelor.team.db.TeamTask;
import com.axelor.team.db.repo.TeamTaskRepository;
import java.util.Map;
public class TeamTaskScript {
public Object computeFullname(Object bean, Map<String, Object> values) {
TeamTask task = ((TeamTask) bean);
Beans.get(TeamTaskRepository.class).save(task);
return task;
}
}

View File

@ -0,0 +1,118 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.db.repo;
import com.axelor.apps.base.db.AppProject;
import com.axelor.apps.base.db.Company;
import com.axelor.apps.base.db.repo.SequenceRepository;
import com.axelor.apps.base.service.administration.SequenceService;
import com.axelor.apps.base.service.app.AppBaseService;
import com.axelor.apps.project.db.Project;
import com.axelor.apps.project.exception.IExceptionMessage;
import com.axelor.apps.project.service.app.AppProjectService;
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.Team;
import com.google.common.base.Strings;
import java.math.BigDecimal;
import javax.persistence.PersistenceException;
public class ProjectManagementRepository extends ProjectRepository {
private void setAllProjectFullName(Project project) {
String projectCode =
(Strings.isNullOrEmpty(project.getCode())) ? "" : project.getCode() + " - ";
project.setFullName(projectCode + project.getName());
if (project.getChildProjectList() != null && !project.getChildProjectList().isEmpty()) {
for (Project child : project.getChildProjectList()) {
String code = (Strings.isNullOrEmpty(child.getCode())) ? "" : child.getCode() + " - ";
child.setFullName(code + child.getName());
}
}
}
public static void setAllProjectMembersUserSet(Project project) {
if (project.getParentProject() == null && project.getChildProjectList() != null) {
project
.getChildProjectList()
.stream()
.filter(Project::getExtendsMembersFromParent)
.peek(p -> project.getMembersUserSet().forEach(p::addMembersUserSetItem))
.forEach(p -> p.setTeam(project.getTeam()));
} else if (project.getParentProject() != null
&& project.getExtendsMembersFromParent()
&& !project.getSynchronize()) {
project.getParentProject().getMembersUserSet().forEach(project.getMembersUserSet()::add);
}
}
@Override
public Project save(Project project) {
ProjectManagementRepository.setAllProjectMembersUserSet(project);
if (project.getSynchronize()) {
Team team = project.getTeam();
if (team != null) {
team.clearMembers();
project.getMembersUserSet().forEach(team::addMember);
}
}
try {
AppProject appProject = Beans.get(AppProjectService.class).getAppProject();
if (Strings.isNullOrEmpty(project.getCode()) && appProject.getGenerateProjectSequence()) {
Company company = project.getCompany();
String seq =
Beans.get(SequenceService.class)
.getSequenceNumber(SequenceRepository.PROJECT_SEQUENCE, company);
if (seq == null) {
throw new AxelorException(
company,
TraceBackRepository.CATEGORY_CONFIGURATION_ERROR,
I18n.get(IExceptionMessage.PROJECT_SEQUENCE_ERROR),
company.getName());
}
project.setCode(seq);
}
} catch (AxelorException e) {
throw new PersistenceException(e.getLocalizedMessage());
}
setAllProjectFullName(project);
project.setEstimatedTimeHrs(
project
.getEstimatedTimeDays()
.multiply(Beans.get(AppBaseService.class).getAppBase().getDailyWorkHours()));
return super.save(project);
}
@Override
public Project copy(Project entity, boolean deep) {
Project project = super.copy(entity, false);
project.setStatusSelect(STATE_NEW);
project.setProgress(BigDecimal.ZERO);
return project;
}
}

View File

@ -0,0 +1,36 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.db.repo;
import com.axelor.apps.project.db.ProjectTemplate;
import com.google.common.base.Strings;
public class ProjectTemplateManagementRepository extends ProjectTemplateRepository {
private void setProjectTemplateFullName(ProjectTemplate entity) {
String projectCode = (Strings.isNullOrEmpty(entity.getCode())) ? "" : entity.getCode() + " - ";
entity.setFullName(projectCode + entity.getName());
}
@Override
public ProjectTemplate save(ProjectTemplate entity) {
this.setProjectTemplateFullName(entity);
return super.save(entity);
}
}

View File

@ -0,0 +1,60 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.db.repo;
import com.axelor.apps.project.db.ResourceBooking;
import com.google.common.base.Strings;
import java.util.ArrayList;
import java.util.List;
public class ResourceBookingRepository extends AbstractResourceBookingRepository {
public String computeName(ResourceBooking resourceBooking) {
List<String> list = new ArrayList<>();
if (resourceBooking.getResource() != null) {
if (resourceBooking.getResource().getResourceType() != null
&& !Strings.isNullOrEmpty(resourceBooking.getResource().getResourceType().getName())) {
list.add(resourceBooking.getResource().getResourceType().getName());
}
if (!Strings.isNullOrEmpty(resourceBooking.getResource().getName())) {
list.add(resourceBooking.getResource().getName());
}
}
if (resourceBooking.getProject() != null
&& !Strings.isNullOrEmpty(resourceBooking.getProject().getFullName())) {
list.add(resourceBooking.getProject().getFullName());
}
if (resourceBooking.getTask() != null
&& !Strings.isNullOrEmpty(resourceBooking.getTask().getFullName())) {
list.add(resourceBooking.getTask().getFullName());
}
return String.join(" - ", list);
}
@Override
public ResourceBooking save(ResourceBooking entity) {
if (Strings.isNullOrEmpty(entity.getName())) {
entity.setName(computeName(entity));
}
return super.save(entity);
}
}

View File

@ -0,0 +1,41 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.db.repo;
import com.axelor.apps.project.db.Project;
import com.axelor.db.JPA;
import com.axelor.team.db.Team;
import com.axelor.team.db.repo.TeamRepository;
import java.util.List;
public class TeamProjectRepository extends TeamRepository {
@Override
public Team save(Team team) {
List<Project> projects =
JPA.all(Project.class)
.filter("self.team = :team AND self.synchronize = true")
.bind("team", team)
.fetch();
projects
.stream()
.peek(Project::clearMembersUserSet)
.peek(p -> team.getMembers().forEach(p::addMembersUserSetItem))
.forEach(ProjectManagementRepository::setAllProjectMembersUserSet);
return super.save(team);
}
}

View File

@ -0,0 +1,111 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.db.repo;
import com.axelor.apps.base.db.repo.TeamTaskBaseRepository;
import com.axelor.team.db.TeamTask;
import java.lang.invoke.MethodHandles;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TeamTaskProjectRepository extends TeamTaskBaseRepository {
private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@Override
public TeamTask save(TeamTask teamTask) {
List<String> composedNames = new ArrayList<>();
if (teamTask.getId() != null) {
composedNames.add("#" + teamTask.getId());
}
composedNames.add(teamTask.getName());
teamTask.setFullName(String.join(" ", composedNames));
return super.save(teamTask);
}
@Override
public Map<String, Object> validate(Map<String, Object> json, Map<String, Object> context) {
logger.debug("Validate team task:{}", json);
logger.debug(
"Planned progress:{}, ProgressSelect: {}, DurationHours: {}, TaskDuration: {}",
json.get("plannedProgress"),
json.get("progressSelect"),
json.get("durationHours"),
json.get("taskDuration"));
if (json.get("id") != null) {
TeamTask savedTask = find(Long.parseLong(json.get("id").toString()));
if (json.get("plannedProgress") != null) {
BigDecimal plannedProgress = new BigDecimal(json.get("plannedProgress").toString());
if (plannedProgress != null
&& savedTask.getPlannedProgress().intValue() != plannedProgress.intValue()) {
logger.debug(
"Updating progressSelect: {}", ((int) (plannedProgress.intValue() * 0.10)) * 10);
json.put("progressSelect", ((int) (plannedProgress.intValue() * 0.10)) * 10);
}
} else if (json.get("progressSelect") != null) {
Integer progressSelect = new Integer(json.get("progressSelect").toString());
logger.debug("Updating plannedProgress: {}", progressSelect);
json.put("plannedProgress", new BigDecimal(progressSelect));
}
if (json.get("durationHours") != null) {
BigDecimal durationHours = new BigDecimal(json.get("durationHours").toString());
if (durationHours != null
&& savedTask.getDurationHours().intValue() != durationHours.intValue()) {
logger.debug(
"Updating taskDuration: {}",
durationHours.divide(new BigDecimal(24), RoundingMode.HALF_EVEN).intValue());
json.put("taskDuration", durationHours.multiply(new BigDecimal(3600)).intValue());
}
} else if (json.get("taskDuration") != null) {
Integer taskDuration = new Integer(json.get("taskDuration").toString());
logger.debug("Updating durationHours: {}", taskDuration / 3600);
json.put("durationHours", new BigDecimal(taskDuration / 3600));
}
} else {
if (json.get("progressSelect") != null) {
Integer progressSelect = new Integer(json.get("progressSelect").toString());
json.put("plannedProgress", new BigDecimal(progressSelect));
}
if (json.get("taskDuration") != null) {
Integer taskDuration = new Integer(json.get("taskDuration").toString());
json.put("durationHours", new BigDecimal(taskDuration / 3600));
}
}
return super.validate(json, context);
}
@Override
public TeamTask copy(TeamTask entity, boolean deep) {
entity.setProgressSelect(null);
entity.setTaskEndDate(null);
entity.setMetaFile(null);
return super.copy(entity, deep);
}
}

View File

@ -0,0 +1,40 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.exception;
/**
* Interface of Exceptions. Enum all exception of axelor-account.
*
* @author dubaux
*/
public interface IExceptionMessage {
static final String PROJECT_PLANNING_NO_TASK = /*$$(*/
"You have no projects or tasks bound to you, your planning can't be generated." /*)*/;
static final String PROJECT_PLANNING_NO_TASK_TEAM = /*$$(*/
"Your team has no projects or tasks bound to it, the planning can't be generated." /*)*/;
static final String PROJECT_CUSTOMER_PARTNER = /*$$(*/
"The selected project/task doesn't contain any customers" /*)*/;
static final String PROJECT_DEEP_LIMIT_REACH = /*$$(*/
"The deep limit of the project is too high" /*)*/;
static final String PROJECT_NO_ACTIVE_TEAM = /*$$(*/
"You have no active team, the planning can't be generated" /*)*/;
static final String PROJECT_NO_TEAM = /*$$(*/ "You have selected no team for this project" /*)*/;
static final String PROJECT_SEQUENCE_ERROR = /*$$(*/
"The company %s doesn't have any configured sequence for Project" /*)*/;
}

View File

@ -0,0 +1,56 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.module;
import com.axelor.app.AxelorModule;
import com.axelor.apps.base.db.repo.TeamTaskBaseRepository;
import com.axelor.apps.base.service.TeamTaskServiceImpl;
import com.axelor.apps.project.db.repo.AbstractResourceBookingRepository;
import com.axelor.apps.project.db.repo.ProjectManagementRepository;
import com.axelor.apps.project.db.repo.ProjectRepository;
import com.axelor.apps.project.db.repo.ProjectTemplateManagementRepository;
import com.axelor.apps.project.db.repo.ProjectTemplateRepository;
import com.axelor.apps.project.db.repo.ResourceBookingRepository;
import com.axelor.apps.project.db.repo.TeamProjectRepository;
import com.axelor.apps.project.db.repo.TeamTaskProjectRepository;
import com.axelor.apps.project.service.ProjectService;
import com.axelor.apps.project.service.ProjectServiceImpl;
import com.axelor.apps.project.service.TeamTaskProjectService;
import com.axelor.apps.project.service.TeamTaskProjectServiceImpl;
import com.axelor.apps.project.service.TimerTeamTaskService;
import com.axelor.apps.project.service.TimerTeamTaskServiceImpl;
import com.axelor.apps.project.service.app.AppProjectService;
import com.axelor.apps.project.service.app.AppProjectServiceImpl;
import com.axelor.team.db.repo.TeamRepository;
public class ProjectModule extends AxelorModule {
@Override
protected void configure() {
bind(ProjectRepository.class).to(ProjectManagementRepository.class);
bind(ProjectTemplateRepository.class).to(ProjectTemplateManagementRepository.class);
bind(AppProjectService.class).to(AppProjectServiceImpl.class);
bind(TeamTaskBaseRepository.class).to(TeamTaskProjectRepository.class);
bind(ProjectService.class).to(ProjectServiceImpl.class);
bind(TeamTaskProjectService.class).to(TeamTaskProjectServiceImpl.class);
bind(TeamTaskServiceImpl.class).to(TeamTaskProjectServiceImpl.class);
bind(TeamRepository.class).to(TeamProjectRepository.class);
bind(TimerTeamTaskService.class).to(TimerTeamTaskServiceImpl.class);
bind(AbstractResourceBookingRepository.class).to(ResourceBookingRepository.class);
}
}

View File

@ -0,0 +1,51 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.service;
import com.axelor.apps.base.db.Company;
import com.axelor.apps.base.db.Partner;
import com.axelor.apps.project.db.Project;
import com.axelor.apps.project.db.ProjectTemplate;
import com.axelor.auth.db.User;
import com.axelor.exception.AxelorException;
import java.math.BigDecimal;
public interface ProjectService {
Project generateProject(
Project parentProject,
String fullName,
User assignedTo,
Company company,
Partner clientPartner);
Partner getClientPartnerFromProject(Project project) throws AxelorException;
BigDecimal computeDurationFromChildren(Long projectId);
/**
* Generate a project from a partner.
*
* @param partner
* @return
*/
Project generateProject(Partner partner);
public Project createProjectFromTemplate(
ProjectTemplate projectTemplate, String projectCode, Partner clientPartner)
throws AxelorException;
}

View File

@ -0,0 +1,304 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.service;
import com.axelor.apps.base.db.Company;
import com.axelor.apps.base.db.Partner;
import com.axelor.apps.project.db.Project;
import com.axelor.apps.project.db.ProjectTemplate;
import com.axelor.apps.project.db.TaskTemplate;
import com.axelor.apps.project.db.Wiki;
import com.axelor.apps.project.db.repo.ProjectRepository;
import com.axelor.apps.project.db.repo.WikiRepository;
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.List;
import java.util.Set;
import javax.persistence.TypedQuery;
public class ProjectServiceImpl implements ProjectService {
public static final int MAX_LEVEL_OF_PROJECT = 10;
private ProjectRepository projectRepository;
@Inject
public ProjectServiceImpl(ProjectRepository projectRepository) {
this.projectRepository = projectRepository;
}
@Inject WikiRepository wikiRepo;
@Inject TeamTaskProjectService teamTaskProjectService;
@Override
public Project generateProject(
Project parentProject,
String fullName,
User assignedTo,
Company company,
Partner clientPartner) {
Project project;
project = projectRepository.findByName(fullName);
if (project != null) {
return project;
}
project = new Project();
project.setStatusSelect(ProjectRepository.STATE_NEW);
project.setParentProject(parentProject);
if (parentProject != null) {
parentProject.addChildProjectListItem(project);
project.setProjectTypeSelect(ProjectRepository.TYPE_PHASE);
} else {
project.setProjectTypeSelect(ProjectRepository.TYPE_PROJECT);
}
if (Strings.isNullOrEmpty(fullName)) {
fullName = "project";
}
project.setName(fullName);
project.setFullName(project.getName());
project.setCompany(company);
project.setClientPartner(clientPartner);
project.setAssignedTo(assignedTo);
project.setProgress(BigDecimal.ZERO);
return project;
}
@Override
@Transactional
public Project generateProject(Partner partner) {
Preconditions.checkNotNull(partner);
User user = AuthUtils.getUser();
Project project =
Beans.get(ProjectService.class)
.generateProject(
null, getUniqueProjectName(partner), user, user.getActiveCompany(), partner);
return projectRepository.save(project);
}
private String getUniqueProjectName(Partner partner) {
String baseName = String.format(I18n.get("%s project"), partner.getName());
long count =
projectRepository.all().filter(String.format("self.name LIKE '%s%%'", baseName)).count();
if (count == 0) {
return baseName;
}
String name;
do {
name = String.format("%s %d", baseName, ++count);
} while (projectRepository.findByName(name) != null);
return name;
}
@Override
public Partner getClientPartnerFromProject(Project project) throws AxelorException {
return this.getClientPartnerFromProject(project, 0);
}
private Partner getClientPartnerFromProject(Project project, int counter) throws AxelorException {
if (project.getParentProject() == null) {
// it is a root project, can get the client partner
if (project.getClientPartner() == null) {
throw new AxelorException(
TraceBackRepository.CATEGORY_CONFIGURATION_ERROR,
I18n.get(IExceptionMessage.PROJECT_CUSTOMER_PARTNER));
} else {
return project.getClientPartner();
}
} else {
if (counter > MAX_LEVEL_OF_PROJECT) {
throw new AxelorException(
TraceBackRepository.CATEGORY_CONFIGURATION_ERROR,
I18n.get(IExceptionMessage.PROJECT_DEEP_LIMIT_REACH));
} else {
return this.getClientPartnerFromProject(project.getParentProject(), counter + 1);
}
}
}
@Override
public BigDecimal computeDurationFromChildren(Long projectId) {
String query =
"SELECT SUM(pt.duration)" + " FROM Project as pt" + " WHERE pt.project.id = :projectId";
TypedQuery<BigDecimal> q = JPA.em().createQuery(query, BigDecimal.class);
q.setParameter("projectId", projectId);
return q.getSingleResult();
}
@Override
@Transactional
public Project createProjectFromTemplate(
ProjectTemplate projectTemplate, String projectCode, Partner clientPartner)
throws AxelorException {
Project project = new Project();
project.setName(projectTemplate.getName());
if (projectRepository.all().filter("self.code = ?", projectCode).count() > 0) {
throw new AxelorException(
TraceBackRepository.CATEGORY_INCONSISTENCY, ITranslation.PROJECT_CODE_ERROR);
} else {
project.setCode(projectCode);
project.setClientPartner(clientPartner);
if (clientPartner != null
&& clientPartner.getContactPartnerSet() != null
&& !clientPartner.getContactPartnerSet().isEmpty()) {
project.setContactPartner(clientPartner.getContactPartnerSet().iterator().next());
}
project.setDescription(projectTemplate.getDescription());
project.setTeam(projectTemplate.getTeam());
project.setProjectFolderSet(new HashSet<>(projectTemplate.getProjectFolderSet()));
project.setAssignedTo(projectTemplate.getAssignedTo());
project.setTeamTaskCategorySet(new HashSet<>(projectTemplate.getTeamTaskCategorySet()));
project.setSynchronize(projectTemplate.getSynchronize());
project.setMembersUserSet(new HashSet<>(projectTemplate.getMembersUserSet()));
project.setImputable(projectTemplate.getImputable());
project.setCompany(projectTemplate.getCompany());
project.setProductSet(new HashSet<>(projectTemplate.getProductSet()));
project.setExcludePlanning(projectTemplate.getExcludePlanning());
project.setProjectTypeSelect(ProjectRepository.TYPE_PROJECT);
List<Wiki> wikiList = projectTemplate.getWikiList();
if (wikiList != null && !wikiList.isEmpty()) {
for (Wiki wiki : wikiList) {
wiki = wikiRepo.copy(wiki, false);
wiki.setProjectTemplate(null);
project.addWikiListItem(wiki);
}
}
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>() {
@Override
public int compare(TaskTemplate taskTemplatet1, TaskTemplate taskTemplate2) {
return taskTemplatet1.getParentTaskTemplate() == null || taskTemplate2 == null
? 1
: taskTemplatet1.getParentTaskTemplate().equals(taskTemplate2) ? -1 : 1;
}
});
if (taskTemplateList != null) {
for (TaskTemplate taskTemplate : taskTemplateList) {
createTask(taskTemplate, project, taskTemplateSet);
}
}
return project;
}
}
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

@ -0,0 +1,27 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.service;
import com.axelor.apps.base.service.TeamTaskService;
import com.axelor.apps.project.db.Project;
import com.axelor.auth.db.User;
import com.axelor.team.db.TeamTask;
public interface TeamTaskProjectService extends TeamTaskService {
TeamTask create(String subject, Project project, User assignedTo);
}

View File

@ -0,0 +1,79 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.service;
import com.axelor.apps.base.service.TeamTaskServiceImpl;
import com.axelor.apps.project.db.Project;
import com.axelor.auth.db.User;
import com.axelor.team.db.TeamTask;
import com.axelor.team.db.repo.TeamTaskRepository;
import com.google.inject.Inject;
import java.time.LocalDate;
public class TeamTaskProjectServiceImpl extends TeamTaskServiceImpl
implements TeamTaskProjectService {
@Inject
public TeamTaskProjectServiceImpl(TeamTaskRepository teamTaskRepo) {
super(teamTaskRepo);
}
@Override
public TeamTask create(String subject, Project project, User assignedTo) {
TeamTask task = new TeamTask();
task.setName(subject);
task.setAssignedTo(assignedTo);
task.setTaskDate(LocalDate.now());
task.setStatus("new");
task.setPriority("normal");
project.addTeamTaskListItem(task);
return task;
}
@Override
protected void setModuleFields(TeamTask teamTask, LocalDate date, TeamTask newTeamTask) {
super.setModuleFields(teamTask, date, newTeamTask);
// Module 'project' fields
newTeamTask.setProgressSelect(0);
newTeamTask.setTaskEndDate(date);
}
@Override
protected void updateModuleFields(TeamTask teamTask, TeamTask nextTeamTask) {
super.updateModuleFields(teamTask, nextTeamTask);
// Module 'project' fields
nextTeamTask.setFullName(teamTask.getFullName());
nextTeamTask.setProject(teamTask.getProject());
nextTeamTask.setTeamTaskCategory(teamTask.getTeamTaskCategory());
nextTeamTask.setProgressSelect(0);
teamTask.getMembersUserSet().forEach(nextTeamTask::addMembersUserSetItem);
nextTeamTask.setTeam(teamTask.getTeam());
nextTeamTask.setParentTask(teamTask.getParentTask());
nextTeamTask.setProduct(teamTask.getProduct());
nextTeamTask.setUnit(teamTask.getUnit());
nextTeamTask.setQuantity(teamTask.getQuantity());
nextTeamTask.setUnitPrice(teamTask.getUnitPrice());
nextTeamTask.setTaskEndDate(teamTask.getTaskEndDate());
nextTeamTask.setBudgetedTime(teamTask.getBudgetedTime());
nextTeamTask.setCurrency(teamTask.getCurrency());
}
}

View File

@ -0,0 +1,38 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.service;
import com.axelor.apps.base.db.Timer;
import com.axelor.apps.base.db.TimerHistory;
import com.axelor.exception.AxelorException;
import com.axelor.team.db.TeamTask;
import java.time.Duration;
import java.time.LocalDateTime;
public interface TimerTeamTaskService {
Timer find(TeamTask task);
TimerHistory start(TeamTask task, LocalDateTime dateTime) throws AxelorException;
TimerHistory stop(TeamTask task, LocalDateTime dateTime) throws AxelorException;
void cancel(TeamTask task) throws AxelorException;
Duration compute(TeamTask task);
}

View File

@ -0,0 +1,108 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.service;
import com.axelor.apps.base.db.Timer;
import com.axelor.apps.base.db.TimerHistory;
import com.axelor.apps.base.db.repo.TimerHistoryRepository;
import com.axelor.apps.base.db.repo.TimerRepository;
import com.axelor.apps.base.service.timer.AbstractTimerService;
import com.axelor.apps.base.service.user.UserService;
import com.axelor.auth.db.User;
import com.axelor.db.Model;
import com.axelor.exception.AxelorException;
import com.axelor.team.db.TeamTask;
import com.google.inject.Inject;
import com.google.inject.persist.Transactional;
import java.time.Duration;
import java.time.LocalDateTime;
public class TimerTeamTaskServiceImpl extends AbstractTimerService implements TimerTeamTaskService {
@Inject
public TimerTeamTaskServiceImpl(
TimerRepository timerRepository,
TimerHistoryRepository timerHistoryRepository,
UserService userService) {
super(timerRepository, timerHistoryRepository, userService);
}
@Override
public Timer find(Model model) {
User user = userService.getUser();
TeamTask task = (TeamTask) model;
return task.getTimerList()
.stream()
.filter(t -> t.getAssignedToUser() == user)
.findFirst()
.orElse(null);
}
@Override
@Transactional(rollbackOn = {Exception.class})
public TimerHistory start(Model model, Timer timer, LocalDateTime dateTime)
throws AxelorException {
TeamTask task = (TeamTask) model;
boolean isNewTimer = timer == null;
timer = tryStartOrCreate(timer);
if (isNewTimer) {
task.addTimerListItem(timer);
}
TimerHistory history = new TimerHistory();
history.setStartDateT(dateTime);
history.setTimer(timer);
timer.addTimerHistoryListItem(history);
return timerHistoryRepository.save(history);
}
@Override
public Timer find(TeamTask task) {
return find((Model) task);
}
@Override
public TimerHistory start(TeamTask task, LocalDateTime dateTime) throws AxelorException {
Timer timer = find(task);
return start(task, timer, dateTime);
}
@Override
public TimerHistory stop(TeamTask task, LocalDateTime dateTime) throws AxelorException {
Timer timer = find(task);
return stop(task, timer, dateTime);
}
@Override
public void cancel(TeamTask task) {
Timer timer = find(task);
cancel(timer);
}
@Override
public Duration compute(TeamTask task) {
Duration total = Duration.ZERO;
for (Timer timer : task.getTimerList()) {
total = total.plus(compute(timer));
}
return total;
}
}

View File

@ -0,0 +1,26 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.service.app;
import com.axelor.apps.base.db.AppProject;
import com.axelor.apps.base.service.app.AppBaseService;
public interface AppProjectService extends AppBaseService {
public AppProject getAppProject();
}

View File

@ -0,0 +1,35 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.service.app;
import com.axelor.apps.base.db.AppProject;
import com.axelor.apps.base.db.repo.AppProjectRepository;
import com.axelor.apps.base.service.app.AppBaseServiceImpl;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@Singleton
public class AppProjectServiceImpl extends AppBaseServiceImpl implements AppProjectService {
@Inject private AppProjectRepository appProjectRepo;
@Override
public AppProject getAppProject() {
return appProjectRepo.all().fetchOne();
}
}

View File

@ -0,0 +1,26 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.translation;
public interface ITranslation {
public static final String PROJECTS_APP_NAME = /* $$( */ "value:Projects"; /* ) */
public static final String PROJECT_CODE_ERROR =
/* $$( */ "Project code is already used. Please provide unique code"; /* ) */
}

View File

@ -0,0 +1,55 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.web;
import com.axelor.apps.base.db.Partner;
import com.axelor.apps.base.db.repo.PartnerRepository;
import com.axelor.apps.project.db.Project;
import com.axelor.apps.project.service.ProjectService;
import com.axelor.exception.service.TraceBackService;
import com.axelor.i18n.I18n;
import com.axelor.inject.Beans;
import com.axelor.meta.schema.actions.ActionView;
import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse;
import com.google.inject.Singleton;
@Singleton
public class PartnerController {
public void generateProject(ActionRequest request, ActionResponse response) {
try {
Partner partner = request.getContext().asType(Partner.class);
partner = Beans.get(PartnerRepository.class).find(partner.getId());
Project project = Beans.get(ProjectService.class).generateProject(partner);
response.setView(
ActionView.define(I18n.get("Generated project"))
.model(Project.class.getName())
.add("form", "project-form")
.add("grid", "project-grid")
.param("forceTitle", "true")
.param("forceEdit", "true")
.context("_showRecord", project.getId())
.map());
} catch (Exception e) {
TraceBackService.trace(response, e);
}
}
}

View File

@ -0,0 +1,35 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.web;
import com.axelor.apps.project.db.Project;
import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse;
import com.google.inject.Singleton;
@Singleton
public class ProjectController {
public void importMembers(ActionRequest request, ActionResponse response) {
Project project = request.getContext().asType(Project.class);
if (project.getTeam() != null) {
project.getTeam().getMembers().forEach(project::addMembersUserSetItem);
response.setValue("membersUserSet", project.getMembersUserSet());
}
}
}

View File

@ -0,0 +1,121 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.web;
import com.axelor.apps.base.db.AppProject;
import com.axelor.apps.base.db.Partner;
import com.axelor.apps.base.db.Wizard;
import com.axelor.apps.base.db.repo.PartnerRepository;
import com.axelor.apps.project.db.Project;
import com.axelor.apps.project.db.ProjectTemplate;
import com.axelor.apps.project.db.repo.ProjectTemplateRepository;
import com.axelor.apps.project.service.ProjectService;
import com.axelor.apps.project.service.app.AppProjectService;
import com.axelor.exception.AxelorException;
import com.axelor.exception.service.TraceBackService;
import com.axelor.i18n.I18n;
import com.axelor.inject.Beans;
import com.axelor.meta.schema.actions.ActionView;
import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse;
import com.axelor.rpc.Context;
import com.google.inject.Singleton;
import java.util.LinkedHashMap;
@Singleton
public class ProjectTemplateController {
public void createProjectFromTemplate(ActionRequest request, ActionResponse response) {
ProjectTemplate projectTemplate = request.getContext().asType(ProjectTemplate.class);
AppProject appProject = Beans.get(AppProjectService.class).getAppProject();
if (appProject.getGenerateProjectSequence() && !projectTemplate.getIsBusinessProject()) {
Project project;
try {
project =
Beans.get(ProjectService.class).createProjectFromTemplate(projectTemplate, null, null);
response.setView(
ActionView.define(I18n.get("Project"))
.model(Project.class.getName())
.add("form", "project-form")
.add("grid", "project-grid")
.context("_showRecord", project.getId())
.map());
} catch (AxelorException e) {
TraceBackService.trace(response, e);
}
} else {
response.setView(
ActionView.define(I18n.get("Create project from this template"))
.model(Wizard.class.getName())
.add("form", "project-template-wizard-form")
.param("popup", "reload")
.param("show-toolbar", "false")
.param("show-confirm", "false")
.param("width", "large")
.param("popup-save", "false")
.context("_projectTemplate", projectTemplate)
.context("_businessProject", projectTemplate.getIsBusinessProject())
.map());
}
}
@SuppressWarnings("unchecked")
public void createProjectFromWizard(ActionRequest request, ActionResponse response) {
Context context = request.getContext();
String projectTemplateId =
((LinkedHashMap<String, Object>) context.get("_projectTemplate")).get("id").toString();
ProjectTemplate projectTemplate =
Beans.get(ProjectTemplateRepository.class).find(Long.parseLong(projectTemplateId));
String projectCode = (String) context.get("code");
Object clientPartnerContext = context.get("clientPartner");
Partner clientPartner = null;
if (clientPartnerContext != null) {
String clientPartnerId =
((LinkedHashMap<String, Object>) clientPartnerContext).get("id").toString();
clientPartner = Beans.get(PartnerRepository.class).find(Long.parseLong(clientPartnerId));
}
Project project;
try {
project =
Beans.get(ProjectService.class)
.createProjectFromTemplate(projectTemplate, projectCode, clientPartner);
response.setCanClose(true);
response.setView(
ActionView.define(I18n.get("Project"))
.model(Project.class.getName())
.add("form", "project-form")
.add("grid", "project-grid")
.context("_showRecord", project.getId())
.map());
} catch (AxelorException e) {
TraceBackService.trace(response, e);
}
}
}

View File

@ -0,0 +1,103 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.project.web;
import com.axelor.apps.base.db.Timer;
import com.axelor.apps.base.db.repo.TimerRepository;
import com.axelor.apps.base.service.app.AppBaseService;
import com.axelor.apps.project.service.TimerTeamTaskService;
import com.axelor.exception.service.TraceBackService;
import com.axelor.inject.Beans;
import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse;
import com.axelor.team.db.TeamTask;
import java.time.Duration;
public class TeamTaskController {
private static final String HIDDEN_ATTR = "hidden";
public void manageTimerButtons(ActionRequest request, ActionResponse response) {
try {
TeamTask task = request.getContext().asType(TeamTask.class);
TimerTeamTaskService service = Beans.get(TimerTeamTaskService.class);
if (task.getId() == null) {
return;
}
Timer timer = service.find(task);
boolean hideStart = false;
boolean hideCancel = true;
if (timer != null) {
hideStart = timer.getStatusSelect() == TimerRepository.TIMER_STARTED;
hideCancel = timer.getTimerHistoryList().isEmpty();
}
response.setAttr("startTimerBtn", HIDDEN_ATTR, hideStart);
response.setAttr("stopTimerBtn", HIDDEN_ATTR, !hideStart);
response.setAttr("cancelTimerBtn", HIDDEN_ATTR, hideCancel);
} catch (Exception e) {
TraceBackService.trace(response, e);
}
}
public void computeTotalTimerDuration(ActionRequest request, ActionResponse response) {
try {
TeamTask task = request.getContext().asType(TeamTask.class);
if (task.getId() == null) {
return;
}
Duration duration = Beans.get(TimerTeamTaskService.class).compute(task);
response.setValue("$_totalTimerDuration", duration.toMinutes() / 60F);
} catch (Exception e) {
TraceBackService.trace(response, e);
}
}
public void startTimer(ActionRequest request, ActionResponse response) {
try {
TeamTask task = request.getContext().asType(TeamTask.class);
Beans.get(TimerTeamTaskService.class)
.start(task, Beans.get(AppBaseService.class).getTodayDateTime().toLocalDateTime());
response.setReload(true);
} catch (Exception e) {
TraceBackService.trace(response, e);
}
}
public void stopTimer(ActionRequest request, ActionResponse response) {
try {
TeamTask task = request.getContext().asType(TeamTask.class);
Beans.get(TimerTeamTaskService.class)
.stop(task, Beans.get(AppBaseService.class).getTodayDateTime().toLocalDateTime());
response.setReload(true);
} catch (Exception e) {
TraceBackService.trace(response, e);
}
}
public void cancelTimer(ActionRequest request, ActionResponse response) {
try {
TeamTask task = request.getContext().asType(TeamTask.class);
Beans.get(TimerTeamTaskService.class).cancel(task);
response.setReload(true);
} catch (Exception e) {
TraceBackService.trace(response, e);
}
}
}

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<csv-inputs xmlns="http://axelor.com/xml/ns/data-import"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/data-import http://axelor.com/xml/ns/data-import/data-import_5.2.xsd">
<input file="auth_permission.csv" separator=";" type="com.axelor.auth.db.Permission" search="self.name = :name" call="com.axelor.csv.script.ImportPermission:importPermissionToRole">
<bind to="canRead" eval="can_read == 'x' ? 'true' : 'false'"/>
<bind to="canWrite" eval="can_write == 'x' ? 'true' : 'false'"/>
<bind to="canCreate" eval="can_create == 'x' ? 'true' : 'false'"/>
<bind to="canRemove" eval="can_remove == 'x' ? 'true' : 'false'"/>
<bind to="canExport" eval="can_export == 'x' ? 'true' : 'false'"/>
</input>
<input file="base_appProject.csv" separator=";" type="com.axelor.apps.base.db.AppProject" call="com.axelor.csv.script.ImportApp:importApp">
<bind column="dependsOn" to="dependsOnSet" search="self.code in :dependsOn" eval="dependsOn.split(',') as List"/>
</input>
<input file="meta_helpEN.csv" separator=";" type="com.axelor.meta.db.MetaHelp">
<bind to="language" eval="'en'" />
<bind to="type" eval="'tooltip'" />
<bind to="model" eval="com.axelor.inject.Beans.get(com.axelor.meta.db.repo.MetaModelRepository.class).findByName(object)?.getFullName()" column="object" />
</input>
<input file="meta_helpFR.csv" separator=";" type="com.axelor.meta.db.MetaHelp">
<bind to="language" eval="'fr'" />
<bind to="type" eval="'tooltip'" />
<bind to="model" eval="com.axelor.inject.Beans.get(com.axelor.meta.db.repo.MetaModelRepository.class).findByName(object)?.getFullName()" column="object" />
</input>
<input file="meta_metaMenu.csv" separator=";" type="com.axelor.meta.db.MetaMenu" search="self.name = :name" update="true" />
<input file="base_sequence.csv" separator=";" type="com.axelor.apps.base.db.Sequence" search="self.importId = :importId">
<bind to="yearlyResetOk" column="yearlyResetOk" eval="yearlyResetOk == '1' ? true : false"/>
<bind to="nextNum" column="nextNum" eval="nextNum?.empty ? '1' : nextNum"/>
<bind to="padding" column="padding" eval="padding?.empty ? '1' : padding"/>
<bind to="toBeAdded" column="toBeAdded" eval="toBeAdded?.empty ? '1' : toBeAdded"/>
<bind to="resetDate" eval="call:com.axelor.apps.base.service.app.AppBaseService:getTodayDate()"/>
</input>
</csv-inputs>

View File

@ -0,0 +1,2 @@
"name";"object";"can_read";"can_write";"can_create";"can_remove";"can_export";"condition";"conditionParams";"roleName"
"perm.project.all";"com.axelor.apps.project.db.*";"x";"x";"x";"x";"x";;;"Admin"
1 name object can_read can_write can_create can_remove can_export condition conditionParams roleName
2 perm.project.all com.axelor.apps.project.db.* x x x x x Admin

View File

@ -0,0 +1,2 @@
"name";"code";"installOrder";"description";"imagePath";"modules";"dependsOn";"sequence"
"Projects";"project";7;"Project management";"app-project.png";"axelor-project";"base";11
1 name code installOrder description imagePath modules dependsOn sequence
2 Projects project 7 Project management app-project.png axelor-project base 11

View File

@ -0,0 +1,2 @@
"importId";"code";"name";"nextNum";"padding";"prefixe";"suffixe";"toBeAdded";"yearlyResetOk"
175;"project";"Project";1;5;"PRJ";;1;0
1 importId code name nextNum padding prefixe suffixe toBeAdded yearlyResetOk
2 175 project Project 1 5 PRJ 1 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 B

View File

@ -0,0 +1,2 @@
"module";"object";"view";"field";"help"
"axelor-project";"AppProject";"app-project-config-form";"resourceManagement";"This option enables resource reservation on projects. You can create resources that can be booked on projects."
1 module object view field help
2 axelor-project AppProject app-project-config-form resourceManagement This option enables resource reservation on projects. You can create resources that can be booked on projects.

View File

@ -0,0 +1,2 @@
"module";"object";"view";"field";"help"
"axelor-project";"AppProject";"app-project-config-form";"resourceManagement";"Cette option permet d'activer la réservation de ressources sur les projets. Vous pourrez créer des ressources qui pourront ensuite être réservées sur les projets."
1 module object view field help
2 axelor-project AppProject app-project-config-form resourceManagement Cette option permet d'activer la réservation de ressources sur les projets. Vous pourrez créer des ressources qui pourront ensuite être réservées sur les projets.

View File

@ -0,0 +1,17 @@
"name";"roles.name"
"menu-project-root";"Admin"
"project-folder";"Admin"
"project-all";"Admin"
"project-phases";"Admin"
"project-tasks";"Admin"
"project-open-tasks";"Admin"
"project-task-history";"Admin"
"project-wiki";"Admin"
"project-dasbhoard";"Admin"
"project-resource";"Admin"
"project-resource-booking";"Admin"
"project-configurations";"Admin"
"project-category";"Admin"
"project-resource-type";"Admin"
"project-historical";"Admin"
"project-reporting";"Admin"
1 name roles.name
2 menu-project-root Admin
3 project-folder Admin
4 project-all Admin
5 project-phases Admin
6 project-tasks Admin
7 project-open-tasks Admin
8 project-task-history Admin
9 project-wiki Admin
10 project-dasbhoard Admin
11 project-resource Admin
12 project-resource-booking Admin
13 project-configurations Admin
14 project-category Admin
15 project-resource-type Admin
16 project-historical Admin
17 project-reporting Admin

View File

@ -0,0 +1,2 @@
"importId";"company.importId"
175;1
1 importId company.importId
2 175 1

View File

@ -0,0 +1,2 @@
importId;imputable
1;true
1 importId imputable
2 1 true

View File

@ -0,0 +1,2 @@
importId;name;clientPartner.importId;code;membersUserSet.importId;typeSelect;company.importId;statusSelect;projInvTypeSelect;assignedTo.importId;fullName;fromDate;duration
1;123Service Project;88;123SP;1;project;1;1;3;1;123SP - 123Service Project;TODAY;50
1 importId name clientPartner.importId code membersUserSet.importId typeSelect company.importId statusSelect projInvTypeSelect assignedTo.importId fullName fromDate duration
2 1 123Service Project 88 123SP 1 project 1 1 3 1 123SP - 123Service Project TODAY 50

View File

@ -0,0 +1,5 @@
importId;name;status;priority;project.importId;assignedTo.importId;taskDate;taskDuration
2;Prepare offer for tender;new;normal;1;1;TODAY;10
3;Audit;new;normal;1;2;TODAY[+10d];20
4;Document preparation;new;normal;1;3;TODAY[+20d];20
5;Presentation;new;normal;1;4;TODAY[+30d];10
1 importId name status priority project.importId assignedTo.importId taskDate taskDuration
2 2 Prepare offer for tender new normal 1 1 TODAY 10
3 3 Audit new normal 1 2 TODAY[+10d] 20
4 4 Document preparation new normal 1 3 TODAY[+20d] 20
5 5 Presentation new normal 1 4 TODAY[+30d] 10

View File

@ -0,0 +1,2 @@
"importId";"company.importId"
175;1
1 importId company.importId
2 175 1

View File

@ -0,0 +1,2 @@
importId;imputable
1;true
1 importId imputable
2 1 true

View File

@ -0,0 +1,2 @@
importId;name;clientPartner.importId;code;membersUserSet.importId;typeSelect;company.importId;statusSelect;assignedTo.importId;fullName;fromDate;duration
1;123Service Project;88;123SP;1;project;1;1;1;123SP - 123Service Project;TODAY;50
1 importId name clientPartner.importId code membersUserSet.importId typeSelect company.importId statusSelect assignedTo.importId fullName fromDate duration
2 1 123Service Project 88 123SP 1 project 1 1 1 123SP - 123Service Project TODAY 50

View File

@ -0,0 +1,5 @@
importId;name;status;priority;project.importId;assignedTo.importId;taskDate;taskDuration
2;Prepare offer for tender;new;normal;1;1;TODAY;10
3;Audit;new;normal;1;2;TODAY[+10d];20
4;Document preparation;new;normal;1;3;TODAY[+20d];20
5;Presentation;new;normal;1;4;TODAY[+30d];10
1 importId name status priority project.importId assignedTo.importId taskDate taskDuration
2 2 Prepare offer for tender new normal 1 1 TODAY 10
3 3 Audit new normal 1 2 TODAY[+10d] 20
4 4 Document preparation new normal 1 3 TODAY[+20d] 20
5 5 Presentation new normal 1 4 TODAY[+30d] 10

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<csv-inputs xmlns="http://axelor.com/xml/ns/data-import"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/data-import http://axelor.com/xml/ns/data-import/data-import_5.2.xsd">
<input file="project_project.csv" type="com.axelor.apps.project.db.Project" separator=";" search="self.importId = :importId">
<bind to="fromDate" column="fromDate" eval="call:com.axelor.csv.script.ImportDateTime:importDate(fromDate)" />
</input>
<input file="business_project_project.csv" type="com.axelor.apps.project.db.Project" separator=";" search="self.importId = :importId"/>
<input file="team_task.csv" type="com.axelor.team.db.TeamTask" separator=";" search="self.importId = :importId" call="com.axelor.apps.csv.script.TeamTaskScript:computeFullname">
<bind to="taskDate" column="taskDate" eval="call:com.axelor.csv.script.ImportDateTime:importDate(taskDate)" />
</input>
<input file="base_sequence.csv" separator=";" type="com.axelor.apps.base.db.Sequence" search="self.importId = :importId" call="com.axelor.csv.script.SequenceScript:computeFullname">
<bind to="yearlyResetOk" column="yearlyResetOk" eval="yearlyResetOk == '1' ? true : false"/>
<bind to="nextNum" column="nextNum" eval="nextNum?.empty ? '1' : nextNum"/>
<bind to="padding" column="padding" eval="padding?.empty ? '1' : padding"/>
<bind to="toBeAdded" column="toBeAdded" eval="toBeAdded?.empty ? '1' : toBeAdded"/>
<bind to="resetDate" eval="call:com.axelor.apps.base.service.app.AppBaseService:getTodayDate()"/>
</input>
</csv-inputs>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="base" package="com.axelor.apps.base.db"/>
<entity name="AppProject" lang="java" extends="App">
<string name="projectLabel" title="Project Label"/>
<boolean name="resourceManagement" title="Resource management" />
<boolean name="isEnableSignature" title="Enable task signature" />
<boolean name="generateProjectSequence" title="Generate sequence for project"/>
<track>
<field name="projectLabel" on="UPDATE"/>
<field name="resourceManagement" on="UPDATE"/>
</track>
</entity>
</domain-models>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="Project">
<string name="name"/>
<string name="description" multiline="true" large="true"/>
<many-to-one name="team" ref="com.axelor.team.db.Team"/>
<many-to-many name="projectFolderSet" ref="com.axelor.apps.project.db.ProjectFolder" title="Project Folders"/>
<one-to-many name="childProjectList" ref="com.axelor.apps.project.db.Project" title="Child Projects" mappedBy="parentProject"/>
<many-to-one name="assignedTo" ref="com.axelor.auth.db.User" title="Assigned to"/>
<integer name="statusSelect" selection="project.status.select" title="Status" default="1"/>
<many-to-many name="teamTaskCategorySet" ref="com.axelor.apps.project.db.TeamTaskCategory" title="Type of authorized categories"/>
<one-to-many name="teamTaskList" ref="com.axelor.team.db.TeamTask" title="Tasks" mappedBy="project"/>
<boolean name="synchronize"/>
<boolean name="extendsMembersFromParent" default="false"/>
<many-to-one name="parentProject" ref="com.axelor.apps.project.db.Project" title="Parent project"/>
<one-to-many name="wikiList" ref="com.axelor.apps.project.db.Wiki" title="Wiki" mappedBy="project"/>
<one-to-many name="resourceBookingList" ref="com.axelor.apps.project.db.ResourceBooking" title="Resource booking" mappedBy="project"/>
<string name="code" title="Code" unique="true"/>
<many-to-many name="membersUserSet" ref="com.axelor.auth.db.User" title="Membres"/>
<many-to-one name="clientPartner" ref="com.axelor.apps.base.db.Partner" title="Customer"/>
<many-to-one name="contactPartner" ref="com.axelor.apps.base.db.Partner" title="Customer Contact"/>
<datetime name="fromDate" title="From Date"/>
<datetime name="toDate" title="To Date"/>
<datetime name="dueDate" title="Due Date"/>
<decimal name="estimatedTimeDays" title="Estimated time (in days)" />
<decimal name="estimatedTimeHrs" title="Estimated time (in hours)" />
<decimal name="timeSpent" title="Time Spent"/>
<decimal name="progress" title="Progress (%)"/>
<decimal name="sequence" title="Sequence" />
<integer name="orderByState"/>
<boolean name="imputable" default="true" massUpdate="true"/>
<many-to-many name="finishToStartTaskSet" ref="com.axelor.apps.project.db.Project" title="Finish tasks to start"/>
<many-to-many name="startToStartTaskSet" ref="com.axelor.apps.project.db.Project" title="Start tasks to start"/>
<many-to-many name="finishToFinishTaskSet" ref="com.axelor.apps.project.db.Project" title="Finish tasks to finish"/>
<many-to-many name="startToFinishTaskSet" ref="com.axelor.apps.project.db.Project" title="Start tasks to finish"/>
<many-to-one name="company" ref="com.axelor.apps.base.db.Company" title="Company"/>
<many-to-many name="productSet" ref="com.axelor.apps.base.db.Product" title="Type of authorized activities"/>
<boolean name="excludePlanning" title="Exclude planning" />
<string name="fullName" namecolumn="true" title="Name"/>
<boolean name="isProject" title="Project/Phase" default="true" />
<boolean name="isShowPhasesElements" title="Show phases elements" default="true" />
<integer name="projectTypeSelect" selection="project.project.project.type.select" default="1"/>
<enum name="genProjTypePerOrderLine" ref="GenProjTypePerOrderLine" default="BUSINESS_PROJECT"/>
<finder-method name="findAllByParentProject" using="parentProject" all="true"/>
<finder-method name="findByName" using="name"/>
<extra-code>
<![CDATA[
public static final Integer TYPE_PROJECT = 1;
public static final Integer TYPE_PHASE = 2;
public static final Integer STATE_NEW = 1;
public static final Integer STATE_IN_PROGRESS = 2;
public static final Integer STATE_FINISHED = 3;
public static final Integer STATE_CANCELED = 4;
]]>
</extra-code>
</entity>
<enum name="GenProjTypePerOrderLine">
<item name="BUSINESS_PROJECT" title="Business project"/>
<item name="PHASE_BY_LINE" title="Phase by line"/>
<item name="TASK_BY_LINE" title="Task by line"/>
<item name="PROJECT_ALONE" title="Project alone"/>
</enum>
</domain-models>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="ProjectFolder">
<string name="name"/>
<string name="description" large="true"/>
<many-to-many name="projectSet" ref="com.axelor.apps.project.db.Project" mappedBy="projectFolderSet"/>
</entity>
</domain-models>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="ProjectStatus">
<string name="name"/>
<boolean name="defaultStatus"/>
<boolean name="isOpen"/>
<boolean name="isClose"/>
</entity>
</domain-models>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="ProjectTemplate">
<string name="name" required="true"/>
<string name="description" multiline="true" large="true"/>
<many-to-one name="team" ref="com.axelor.team.db.Team"/>
<many-to-many name="projectFolderSet" ref="com.axelor.apps.project.db.ProjectFolder" title="Project Folders"/>
<many-to-one name="assignedTo" ref="com.axelor.auth.db.User" title="Assigned to"/>
<many-to-many name="teamTaskCategorySet" ref="com.axelor.apps.project.db.TeamTaskCategory" title="Type of authorized categories"/>
<boolean name="synchronize"/>
<one-to-many name="wikiList" ref="com.axelor.apps.project.db.Wiki" title="Wiki" mappedBy="projectTemplate"/>
<string name="code" title="Code" unique="true"/>
<many-to-many name="membersUserSet" ref="com.axelor.auth.db.User" title="Membres"/>
<boolean name="imputable" default="true" massUpdate="true"/>
<many-to-one name="company" ref="com.axelor.apps.base.db.Company" title="Company"/>
<many-to-many name="productSet" ref="com.axelor.apps.base.db.Product" title="Type of authorized activities"/>
<string name="fullName" namecolumn="true" title="Name"/>
<boolean name="excludePlanning" title="Exclude planning"/>
<boolean name="isBusinessProject" title="Business project"/>
<many-to-many name="taskTemplateSet" ref="com.axelor.apps.project.db.TaskTemplate" title="Task templates"/>
</entity>
</domain-models>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="Resource">
<string name="name" required="true"/>
<many-to-one name="resourceType" ref="ResourceType" title="Type" />
<string name="batchNo" title="Serial/batch number"/>
<many-to-one name="resourceImage" title="Image" ref="com.axelor.meta.db.MetaFile" />
</entity>
</domain-models>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="ResourceBooking" repository="abstract">
<string name="name"/>
<many-to-one name="resource" ref="Resource" title="Resource" column="project_resource" required="true"/>
<many-to-one name="project" ref="Project" title="Project" required="true"/>
<many-to-one name="task" ref="com.axelor.team.db.TeamTask" title="Task" />
<boolean name="updateTaskFromPeriod" title="Update period according to task" />
<many-to-one name="user" ref="com.axelor.auth.db.User" column="user_id"/>
<datetime name="fromDate" title="From date"/>
<datetime name="toDate" title="To date"/>
<string name="notes" title="Notes" large="true" />
</entity>
</domain-models>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="ResourceType">
<string name="name" required="true"/>
</entity>
</domain-models>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="base" package="com.axelor.apps.base.db"/>
<entity name="Sequence" lang="java">
<extra-code><![CDATA[
//SEQUENCE SELECT
public static final String PROJECT_SEQUENCE = "project";
]]></extra-code>
</entity>
</domain-models>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="TaskTemplate">
<string name="name" namecolumn="true" title="Name" search="id,name"/>
<decimal name="delayToStart" default="0" title="Delay to start (Hours)"/>
<decimal name="duration" title="Duration (Hours)"/>
<decimal name="totalPlannedHrs" title="Total planned hours"/>
<many-to-one name="parentTaskTemplate" ref="com.axelor.apps.project.db.TaskTemplate"
title="Parent task"/>
<one-to-many name="taskTemplateList" ref="com.axelor.apps.project.db.TaskTemplate"
mappedBy="parentTaskTemplate" orphanRemoval="true"/>
<many-to-one name="assignedTo" ref="com.axelor.auth.db.User" title="Assigned to"/>
<many-to-one name="team" ref="com.axelor.team.db.Team"/>
<boolean name="isUniqueTaskForMultipleQuantity"/>
<string name="description" title="Description" large="true"/>
</entity>
</domain-models>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.team.db"/>
<entity name="TeamTask">
<many-to-one name="project" ref="com.axelor.apps.project.db.Project" title="Project"/>
<string name="fullName" namecolumn="true" title="Name" search="id,name"/>
<many-to-one name="parentTask" ref="com.axelor.team.db.TeamTask" title="Parent task"/>
<many-to-one name="teamTaskCategory" ref="com.axelor.apps.project.db.TeamTaskCategory" title="Category"/>
<integer name="progressSelect" title="Progress" selection="project.task.progress.select"/>
<many-to-one name="team" ref="com.axelor.team.db.Team" title="Team"/>
<one-to-many name="teamTaskList" ref="com.axelor.team.db.TeamTask" mappedBy="parentTask"/>
<many-to-many name="membersUserSet" ref="com.axelor.auth.db.User" title="Followers"/>
<string name="description" title="Description" large="true"/>
<many-to-one name="product" ref="com.axelor.apps.base.db.Product" title="Product"/>
<many-to-one name="unit" ref="com.axelor.apps.base.db.Unit" title="Unit"/>
<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 -->
<decimal name="plannedProgress" title="Planned progress" />
<many-to-many name="finishToStartSet" title="Predecessors tasks" ref="TeamTask" />
<many-to-many name="startToStartSet" title="Tasks to start before start" ref="TeamTask"/>
<many-to-many name="finishToFinishSet" title="Tasks to finish before finish" ref="TeamTask"/>
<decimal name="durationHours" title="Duration hours" />
<date name="taskEndDate" title="Task end" />
<one-to-many name="timerList" ref="com.axelor.apps.base.db.Timer"/>
<decimal name="budgetedTime" title="Estimated time"/>
<many-to-one name="metaFile" title="Signature" ref="com.axelor.meta.db.MetaFile" />
<track replace="true">
<field name="status"/>
<field name="teamTaskCategory"/>
<field name="progressSelect"/>
<field name="assignedTo"/>
<message if="true" on="UPDATE">Task updated</message>
</track>
</entity>
</domain-models>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<entity name="TeamTaskCategory">
<string name="name" title="Name" required="true"/>
</entity>
</domain-models>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="auth" package="com.axelor.auth.db"/>
<entity name="User" sequential="true" lang="java">
<many-to-many name="projectSet" title="Projects" ref="com.axelor.apps.project.db.Project" mappedBy="membersUserSet"/>
</entity>
</domain-models>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" ?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="project" package="com.axelor.apps.project.db"/>
<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>
</domain-models>

View File

@ -0,0 +1,277 @@
"key","message","comment","context"
"%s project",,,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>",,,
"Accept Order",,,
"Actions",,,
"Add multiple lines",,,
"Add selected lines",,,
"All phase tasks",,,
"All phases",,,
"All tasks",,,
"Analytic",,,
"Announcement",,,
"App project",,,
"Assigned to",,,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource",,,
"Business",,,
"Business project",,,
"Cancel",,,
"Canceled",,,
"Category",,,
"Characteristics",,,
"Child Projects",,,
"Code",,,
"Company",,,
"Configuration",,,
"Configurations",,,
"Content",,,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project",,,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency",,,
"Customer",,,
"Customer Contact",,,
"Customer Invoice lines",,,
"Customer contracts",,,
"Daily planned charge in a month in an average per employee",,,
"Daily planned charge in a month per employee",,,
"Daily planned charge in a month per project",,,
"Dates",,,
"Deadline",,,
"Deadline Today",,,
"Deadline Tomorrow",,,
"Deadline Yesterday",,,
"Default status",,,
"Delay to start (Hours)",,,
"Description",,,
"Due Date",,,
"Duration (Hours)",,,
"Duration hours",,,
"Employee",,,
"Enable task signature",,,
"Enter Time spent",,,
"Estimated time",,,
"Estimated time (in days)",,,
"Estimated time (in hours)",,,
"Exclude planning",,,
"Expense lines",,,
"Expenses",,,
"Extends members from parent",,,
"Financial Data",,,
"Financial Report",,,
"Finish",,,
"Finish tasks to finish",,,
"Finish tasks to start",,,
"Finished",,,
"Follow-up",,,
"Followers",,,
"Frequency",,,
"From Date",,,
"From date",,,
"Gantt",,,
"Gantt with project",,,
"Gantt with user",,,
"Gen proj type per order line",,,
"Generate quotation",,,
"Generate sequence for project",,,
"Generated project",,,
"High",,,
"Historical",,,
"Image",,,
"Import all members",,,
"Imputable",,,
"In Progress",,,
"Internal Description",,,
"Invoiced",,,
"Invoices",,,
"Invoicing",,,
"Is close",,,
"Is open",,,
"Is unique task for multiple quantity",,,
"Log Times",,,
"Low",,,
"Manage lines",,,
"Members",,,
"Membres",,,
"My projects",,,
"My tasks due",,,
"My tasks to do",,,
"My today planning",,,
"My upcoming planning",,,
"Name",,,
"New",,,
"New line",,,
"New task",,,
"New ticket",,,
"Normal",,,
"Not invoiced",,,
"Not specified",,,
"Notes",,,
"Open gantt",,,
"Open phase",,,
"Open task",,,
"Order Accepted",,,
"Order Proposed",,,
"Order by state",,,
"Package",,,
"Parent project",,,
"Parent task",,,
"Person In Charge",,,
"Phase by line",,,
"Phase tasks",,,
"Phases",,,
"Plan project",,,
"Planification and costs",,,
"Planned Time Planning",,,
"Planned charge",,,
"Planned progress",,,
"Planning",,,
"Please select project",,,
"Please select user",,,
"Predecessors tasks",,,
"Product",,,
"Production",,,
"Progress",,,
"Progress (%)",,,
"Project",,,
"Project Calendar",,,
"Project Folder",,,
"Project Folders",,,
"Project Gantt",,,
"Project Label",,,
"Project Phase",,,
"Project Task",,,
"Project Task Tree",,,
"Project Tasks",,,
"Project Wiki",,,
"Project alone",,,
"Project phase",,,
"Project phases",,,
"Project planning",,,
"Project set",,,
"Project template",,,
"Project type select",,,
"Project.toInvoice",,,
"Project/Business (Project)",,,
"Project/Phase",,,
"Projects",,,
"Projects Financial Report",,,
"Projects Folder",,,
"Projects Planification and costs",,,
"Purchase order lines",,,
"Purchases",,,
"Quantity",,,
"Related Projects",,,
"Related tasks",,,
"Remove lines",,,
"Remove selected lines",,,
"Reportings",,,
"Reports",,,
"Reset to New",,,
"Resource",,,
"Resource booking",,,
"Resource bookings",,,
"Resource management",,,
"Resource type",,,
"Resource types",,,
"Resources",,,
"Roadmap",,,
"Sale order lines",,,
"Sales",,,
"Select Projects",,,
"Select Users",,,
"Select lines to remove",,,
"Select new lines",,,
"Sequence",,,
"Serial/batch number",,,
"Show expense lines",,,
"Show phases elements",,,
"Show production orders",,,
"Show purchase order lines",,,
"Show sale order lines",,,
"Signature",,,
"Start",,,
"Start tasks to finish",,,
"Start tasks to start",,,
"Status",,,
"Stop",,,
"Subject",,,
"Supplier Invoice lines",,,
"Supplier contracts",,,
"Synchronize",,,
"Take charge",,,
"Task",,,
"Task Invoicing",,,
"Task Tree",,,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line",,,
"Task date",,,
"Task deadline",,,
"Task end",,,
"Task history",,,
"Task template",,,
"Task template list",,,
"Task templates",,,
"Task updated",,,
"Tasks",,,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team",,,
"Team Task Category",,,
"Team task list",,,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high",,,
"The selected project/task doesn't contain any customers",,,
"Ticket",,,
"Tickets",,,
"Time Spent",,,
"Timer",,,
"Timer list",,,
"Title",,,
"To Date",,,
"To Invoice",,,
"To date",,,
"Tools",,,
"Total duration (Hours)",,,
"Total planned hours",,,
"Tree view",,,
"Type",,,
"Type of authorized activities",,,
"Type of authorized categories",,,
"Unit",,,
"Unit price",,,
"Unlink selected lines",,,
"Update period according to task",,,
"Urgent",,,
"User",,,
"User Gantt",,,
"User Task",,,
"Users",,,
"Validated Timesheet lines",,,
"Waiting Timesheet lines",,,
"Wiki",,,
"You have no active team, the planning can't be generated",,,
"You have no projects or tasks bound to you, your planning can't be generated.",,,
"You have selected no team for this project",,,
"Your team has no projects or tasks bound to it, the planning can't be generated.",,,
"hours",,,
"project-Resources",,,
1 key message comment context
2 %s project
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span>
15 Accept Order
16 Actions
17 Add multiple lines
18 Add selected lines
19 All phase tasks
20 All phases
21 All tasks
22 Analytic
23 Announcement
24 App project
25 Assigned to
26 Assigning to the customer
27 Assigning to the provider
28 Book resource
29 Business
30 Business project
31 Cancel
32 Canceled
33 Category
34 Characteristics
35 Child Projects
36 Code
37 Company
38 Configuration
39 Configurations
40 Content
41 Contracts
42 Create business project from this template
43 Create invoicing project
44 Create new customer contract
45 Create new supplier contract
46 Create project from this template
47 Currency
48 Customer
49 Customer Contact
50 Customer Invoice lines
51 Customer contracts
52 Daily planned charge in a month in an average per employee
53 Daily planned charge in a month per employee
54 Daily planned charge in a month per project
55 Dates
56 Deadline
57 Deadline Today
58 Deadline Tomorrow
59 Deadline Yesterday
60 Default status
61 Delay to start (Hours)
62 Description
63 Due Date
64 Duration (Hours)
65 Duration hours
66 Employee
67 Enable task signature
68 Enter Time spent
69 Estimated time
70 Estimated time (in days)
71 Estimated time (in hours)
72 Exclude planning
73 Expense lines
74 Expenses
75 Extends members from parent
76 Financial Data
77 Financial Report
78 Finish
79 Finish tasks to finish
80 Finish tasks to start
81 Finished
82 Follow-up
83 Followers
84 Frequency
85 From Date
86 From date
87 Gantt
88 Gantt with project
89 Gantt with user
90 Gen proj type per order line
91 Generate quotation
92 Generate sequence for project
93 Generated project
94 High
95 Historical
96 Image
97 Import all members
98 Imputable
99 In Progress
100 Internal Description
101 Invoiced
102 Invoices
103 Invoicing
104 Is close
105 Is open
106 Is unique task for multiple quantity
107 Log Times
108 Low
109 Manage lines
110 Members
111 Membres
112 My projects
113 My tasks due
114 My tasks to do
115 My today planning
116 My upcoming planning
117 Name
118 New
119 New line
120 New task
121 New ticket
122 Normal
123 Not invoiced
124 Not specified
125 Notes
126 Open gantt
127 Open phase
128 Open task
129 Order Accepted
130 Order Proposed
131 Order by state
132 Package
133 Parent project
134 Parent task
135 Person In Charge
136 Phase by line
137 Phase tasks
138 Phases
139 Plan project
140 Planification and costs
141 Planned Time Planning
142 Planned charge
143 Planned progress
144 Planning
145 Please select project
146 Please select user
147 Predecessors tasks
148 Product
149 Production
150 Progress
151 Progress (%)
152 Project
153 Project Calendar
154 Project Folder
155 Project Folders
156 Project Gantt
157 Project Label
158 Project Phase
159 Project Task
160 Project Task Tree
161 Project Tasks
162 Project Wiki
163 Project alone
164 Project phase
165 Project phases
166 Project planning
167 Project set
168 Project template
169 Project type select
170 Project.toInvoice
171 Project/Business (Project)
172 Project/Phase
173 Projects
174 Projects Financial Report
175 Projects Folder
176 Projects Planification and costs
177 Purchase order lines
178 Purchases
179 Quantity
180 Related Projects
181 Related tasks
182 Remove lines
183 Remove selected lines
184 Reportings
185 Reports
186 Reset to New
187 Resource
188 Resource booking
189 Resource bookings
190 Resource management
191 Resource type
192 Resource types
193 Resources
194 Roadmap
195 Sale order lines
196 Sales
197 Select Projects
198 Select Users
199 Select lines to remove
200 Select new lines
201 Sequence
202 Serial/batch number
203 Show expense lines
204 Show phases elements
205 Show production orders
206 Show purchase order lines
207 Show sale order lines
208 Signature
209 Start
210 Start tasks to finish
211 Start tasks to start
212 Status
213 Stop
214 Subject
215 Supplier Invoice lines
216 Supplier contracts
217 Synchronize
218 Take charge
219 Task
220 Task Invoicing
221 Task Tree
222 Task assigned to
223 Task assigned to the client
224 Task assigned to the provider
225 Task by line
226 Task date
227 Task deadline
228 Task end
229 Task history
230 Task template
231 Task template list
232 Task templates
233 Task updated
234 Tasks
235 Tasks to finish before finish
236 Tasks to start before start
237 Team
238 Team Task Category
239 Team task list
240 Template
241 The company %s doesn't have any configured sequence for Project
242 The deep limit of the project is too high
243 The selected project/task doesn't contain any customers
244 Ticket
245 Tickets
246 Time Spent
247 Timer
248 Timer list
249 Title
250 To Date
251 To Invoice
252 To date
253 Tools
254 Total duration (Hours)
255 Total planned hours
256 Tree view
257 Type
258 Type of authorized activities
259 Type of authorized categories
260 Unit
261 Unit price
262 Unlink selected lines
263 Update period according to task
264 Urgent
265 User
266 User Gantt
267 User Task
268 Users
269 Validated Timesheet lines
270 Waiting Timesheet lines
271 Wiki
272 You have no active team, the planning can't be generated
273 You have no projects or tasks bound to you, your planning can't be generated.
274 You have selected no team for this project
275 Your team has no projects or tasks bound to it, the planning can't be generated.
276 hours
277 project-Resources

View File

@ -0,0 +1,268 @@
"key","message","comment","context"
"%s project","%s Projekt",,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>","<span class='label label-info'>Automatisch berechnet, wenn leer gelassen</span>",,
"Accept Order",,,
"Actions","Aktionen",,
"Add multiple lines","Mehrere Zeilen hinzufügen",,
"Add selected lines","Hinzufügen ausgewählter Zeilen",,
"All phase tasks","Alle Phasenaufgaben",,
"All phases","Alle Phasen",,
"All tasks","Alle Aufgaben",,
"Analytic",,,
"Announcement",,,
"App project","App-Projekt",,
"Assigned to","Zugeordnet zu",,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource","Ressource buchen",,
"Budgeted time",,,
"Business","Business",,
"Business project","Geschäftsprojekt",,
"Cancel","Abbrechen",,
"Canceled","Abgesagt",,
"Category","Kategorie",,
"Characteristics","Merkmale",,
"Child Projects","Kinderprojekte",,
"Code","Code",,
"Company","Unternehmen",,
"Configuration","Konfiguration",,
"Configurations","Konfigurationen",,
"Content","Inhalt",,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project","Fakturierungsprojekt erstellen",,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency","Währung",,
"Customer","Kunde",,
"Customer Contact","Kundenkontakt",,
"Customer Invoice lines","Kundenrechnungszeilen",,
"Customer contracts",,,
"Dates","Daten",,
"Deadline","Deadline",,
"Deadline Today","Deadline heute",,
"Deadline Tomorrow","Deadline morgen",,
"Deadline Yesterday","Deadline gestern",,
"Default status","Standardstatus",,
"Delay to start (Hours)","Startverzögerung (Stunden)",,
"Description","Beschreibung",,
"Due Date","Fälligkeitsdatum",,
"Duration (Hours)","Dauer (Stunden)",,
"Duration hours","Dauer Stunden",,
"Enable task signature",,,
"Enter Time spent",,,
"Exclude planning","Planung ausschließen",,
"Expense lines","Ausgabenzeilen",,
"Expenses","Aufwendungen",,
"Extends members from parent","Erweitert Mitglieder von parent",,
"Financial Data","Finanzdaten",,
"Financial Report","Finanzbericht",,
"Finish","Ende",,
"Finish tasks to finish","Aufgaben beenden, um sie zu erledigen",,
"Finish tasks to start","Aufgaben beenden, um zu starten",,
"Finished","Fertiggestellt",,
"Follow-up","Nachbereitung",,
"Followers","Anhänger",,
"Frequency",,,
"From Date","Von-Datum",,
"From date","Von-Datum",,
"Gantt","Gantt",,
"Gantt with project","Gantt mit Projekt",,
"Gantt with user","Gantt mit Benutzer",,
"Gen proj type per order line","Projekttyp pro Auftragszeile generieren",,
"Generate quotation","Angebot erstellen",,
"Generate sequence for project",,,
"Generated project","Generiertes Projekt",,
"High","Hoch",,
"Historical","Historisch",,
"Image","Bild",,
"Import all members","Alle Mitglieder importieren",,
"Imputable","Vertretbar",,
"In Progress","In Bearbeitung",,
"Internal Description",,,
"Invoiced","Rechnungsstellung",,
"Invoices",,,
"Invoicing","Rechnungsstellung",,
"Is close","Ist nah",,
"Is open","Ist offen",,
"Is unique task for multiple quantity","Ist eine eindeutige Aufgabe für mehrere Mengen",,
"Log Times","Protokollzeiten",,
"Low","Niedrig",,
"Manage lines","Linien verwalten",,
"Members","Mitglieder",,
"Membres","Membres",,
"My projects","Meine Projekte",,
"My tasks due","Meine Aufgaben sind fällig",,
"My tasks to do","Meine Aufgaben",,
"My today planning","Meine heutige Planung",,
"My upcoming planning","Meine bevorstehende Planung",,
"Name","Name",,
"New","Neu",,
"New line","Neue Linie",,
"New task",,,
"New ticket",,,
"Normal","Normal",,
"Not invoiced","Nicht fakturiert",,
"Not specified","Nicht spezifiziert",,
"Notes","Notizen",,
"Open gantt","Offenes Portal",,
"Open phase","Offene Phase",,
"Open task","Aufgabe öffnen",,
"Order Accepted",,,
"Order Proposed",,,
"Order by state","Nach Bundesland sortieren",,
"Package",,,
"Parent project","Übergeordnetes Projekt",,
"Parent task","Übergeordnete Aufgabe",,
"Person In Charge","Verantwortlicher",,
"Phase by line","Phase für Phase",,
"Phase tasks","Phasenaufgaben",,
"Phases","Phasen",,
"Plan project","Projekt planen",,
"Planification and costs","Planung und Kosten",,
"Planned Time Planning",,,
"Planned progress","Geplanter Fortschritt",,
"Planning","Planung",,
"Please select project","Bitte wählen Sie ein Projekt",,
"Please select user","Bitte Benutzer auswählen",,
"Predecessors tasks","Aufgaben des Vorgängers",,
"Product","Produkt",,
"Production","Produktion",,
"Progress","Fortschritte",,
"Progress (%)","Fortschritt (%)",,
"Project","Projekt",,
"Project Calendar","Projektkalender",,
"Project Category","Projektkategorie",,
"Project Folder","Projektordner",,
"Project Folders","Projektordner",,
"Project Gantt","Projekt Gantt",,
"Project Label","Projekt-Label",,
"Project Phase","Projektphase",,
"Project Planning Time Spent",,,
"Project Task","Projektaufgabe",,
"Project Task Tree","Projektaufgabenbaum",,
"Project Tasks","Projektaufgaben",,
"Project Wiki","Projekt-Wiki",,
"Project alone","Projekt alleine",,
"Project phase","Projektphase",,
"Project phases","Projektphasen",,
"Project planning","Projektplanung",,
"Project set","Projektset",,
"Project template",,,
"Project type select","Projekttyp auswählen",,
"Project/Business (Project)","Projekt/Geschäft (Projekt)",,
"Project/Phase","Projekt/Phase",,
"Projects","Projekte",,
"Projects Folder","Projektordner",,
"Purchase order lines","Bestellzeilen",,
"Purchases","Einkäufe",,
"Quantity","Menge",,
"Related Projects","Verwandte Projekte",,
"Related tasks","Verwandte Aufgaben",,
"Remove lines","Linien entfernen",,
"Remove selected lines","Markierte Zeilen entfernen",,
"Reportings","Berichte",,
"Reports","Berichte",,
"Reset to New","Zurücksetzen auf neu",,
"Resource","Ressource",,
"Resource booking","Ressourcenbuchung",,
"Resource bookings","Ressourcenbuchungen",,
"Resource management","Ressourcenmanagement",,
"Resource type","Ressourcentyp",,
"Resource types","Ressourcentypen",,
"Resources","Ressourcen",,
"Roadmap",,,
"Sale order lines","Verkaufsauftragszeilen",,
"Sales","Umsatz",,
"Select Projects","Projekte auswählen",,
"Select Users","Benutzer auswählen",,
"Select lines to remove",,,
"Select new lines","Neue Zeilen auswählen",,
"Sequence","Sequenz",,
"Serial/batch number","Serien-/Chargennummer",,
"Show expense lines","Spesenzeilen anzeigen",,
"Show phases elements","Phasenelemente anzeigen",,
"Show production orders","Fertigungsaufträge anzeigen",,
"Show purchase order lines","Bestellzeilen anzeigen",,
"Show sale order lines","Verkaufsauftragszeilen anzeigen",,
"Signature",,,
"Start","Start",,
"Start tasks to finish","Aufgaben starten, um sie zu beenden",,
"Start tasks to start","Aufgaben zum Starten starten",,
"Status","Status",,
"Stop","Stopp",,
"Subject","Betreff",,
"Supplier Invoice lines","Lieferantenrechnungszeilen",,
"Supplier contracts",,,
"Synchronize","Synchronisieren",,
"Take charge","Übernehmen Sie die Verantwortung",,
"Task","Aufgabe",,
"Task Invoicing","Aufgabe Fakturierung",,
"Task Tree","Aufgabenbaum",,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line","Aufgabe pro Zeile",,
"Task date","Aufgabendatum",,
"Task deadline","Aufgaben-Deadline",,
"Task end","Aufgabenende",,
"Task history","Aufgabenhistorie",,
"Task template",,,
"Task template list","Aufgabenvorlagenliste",,
"Task templates",,,
"Task updated","Aufgabe aktualisiert",,
"Tasks","Aufgaben",,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team","Team",,
"Team task list","Teamaufgabenliste",,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high","Die tiefe Grenze des Projekts ist zu hoch.",,
"The selected project/task doesn't contain any customers","Das ausgewählte Projekt/Aufgabe enthält keine Kunden.",,
"Ticket",,,
"Tickets",,,
"Time Spent","Zeitaufwand",,
"Timer","Timer",,
"Timer list","Timerliste",,
"Title","Titel",,
"To Date","Bis heute",,
"To Invoice","Zur Rechnung",,
"To date","Bis heute",,
"Tools","Werkzeuge",,
"Total duration (Hours)","Gesamtdauer (Stunden)",,
"Total planned hours","Summe der geplanten Stunden",,
"Tree view","Strukturansicht",,
"Type","Typ",,
"Type of authorized activities","Art der autorisierten Aktivitäten",,
"Type of authorized categories","Art der autorisierten Kategorien",,
"Unit","Einheit",,
"Unit price","Stückpreis",,
"Unlink selected lines","Löscht die Verknüpfung ausgewählter Leitungen",,
"Update period according to task","Aktualisierungszeitraum je nach Aufgabe",,
"Urgent","Dringend",,
"User","Benutzer",,
"User Gantt","Benutzer-Gantt",,
"User Task","Benutzeraufgabe",,
"Users","Benutzer",,
"Validated Timesheet lines","Validierte Stundenzettelzeilen",,
"Waiting Timesheet lines","Wartende Stundenzettelzeilen",,
"Wiki","Wiki",,
"You have no active team, the planning can't be generated","Du hast kein aktives Team, die Planung kann nicht generiert werden.",,
"You have no projects or tasks bound to you, your planning can't be generated.","Sie haben keine Projekte oder Aufgaben an sich gebunden, Ihre Planung kann nicht generiert werden.",,
"You have selected no team for this project","Sie haben kein Team für dieses Projekt ausgewählt.",,
"Your team has no projects or tasks bound to it, the planning can't be generated.","Ihr Team hat keine Projekte oder Aufgaben, an die es gebunden ist, die Planung kann nicht generiert werden.",,
"hours","Stunden",,
"project-Resources","Projekt-Ressourcen",,
1 key message comment context
2 %s project %s Projekt
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span> <span class='label label-info'>Automatisch berechnet, wenn leer gelassen</span>
15 Accept Order
16 Actions Aktionen
17 Add multiple lines Mehrere Zeilen hinzufügen
18 Add selected lines Hinzufügen ausgewählter Zeilen
19 All phase tasks Alle Phasenaufgaben
20 All phases Alle Phasen
21 All tasks Alle Aufgaben
22 Analytic
23 Announcement
24 App project App-Projekt
25 Assigned to Zugeordnet zu
26 Assigning to the customer
27 Assigning to the provider
28 Book resource Ressource buchen
29 Budgeted time
30 Business Business
31 Business project Geschäftsprojekt
32 Cancel Abbrechen
33 Canceled Abgesagt
34 Category Kategorie
35 Characteristics Merkmale
36 Child Projects Kinderprojekte
37 Code Code
38 Company Unternehmen
39 Configuration Konfiguration
40 Configurations Konfigurationen
41 Content Inhalt
42 Contracts
43 Create business project from this template
44 Create invoicing project Fakturierungsprojekt erstellen
45 Create new customer contract
46 Create new supplier contract
47 Create project from this template
48 Currency Währung
49 Customer Kunde
50 Customer Contact Kundenkontakt
51 Customer Invoice lines Kundenrechnungszeilen
52 Customer contracts
53 Dates Daten
54 Deadline Deadline
55 Deadline Today Deadline heute
56 Deadline Tomorrow Deadline morgen
57 Deadline Yesterday Deadline gestern
58 Default status Standardstatus
59 Delay to start (Hours) Startverzögerung (Stunden)
60 Description Beschreibung
61 Due Date Fälligkeitsdatum
62 Duration (Hours) Dauer (Stunden)
63 Duration hours Dauer Stunden
64 Enable task signature
65 Enter Time spent
66 Exclude planning Planung ausschließen
67 Expense lines Ausgabenzeilen
68 Expenses Aufwendungen
69 Extends members from parent Erweitert Mitglieder von parent
70 Financial Data Finanzdaten
71 Financial Report Finanzbericht
72 Finish Ende
73 Finish tasks to finish Aufgaben beenden, um sie zu erledigen
74 Finish tasks to start Aufgaben beenden, um zu starten
75 Finished Fertiggestellt
76 Follow-up Nachbereitung
77 Followers Anhänger
78 Frequency
79 From Date Von-Datum
80 From date Von-Datum
81 Gantt Gantt
82 Gantt with project Gantt mit Projekt
83 Gantt with user Gantt mit Benutzer
84 Gen proj type per order line Projekttyp pro Auftragszeile generieren
85 Generate quotation Angebot erstellen
86 Generate sequence for project
87 Generated project Generiertes Projekt
88 High Hoch
89 Historical Historisch
90 Image Bild
91 Import all members Alle Mitglieder importieren
92 Imputable Vertretbar
93 In Progress In Bearbeitung
94 Internal Description
95 Invoiced Rechnungsstellung
96 Invoices
97 Invoicing Rechnungsstellung
98 Is close Ist nah
99 Is open Ist offen
100 Is unique task for multiple quantity Ist eine eindeutige Aufgabe für mehrere Mengen
101 Log Times Protokollzeiten
102 Low Niedrig
103 Manage lines Linien verwalten
104 Members Mitglieder
105 Membres Membres
106 My projects Meine Projekte
107 My tasks due Meine Aufgaben sind fällig
108 My tasks to do Meine Aufgaben
109 My today planning Meine heutige Planung
110 My upcoming planning Meine bevorstehende Planung
111 Name Name
112 New Neu
113 New line Neue Linie
114 New task
115 New ticket
116 Normal Normal
117 Not invoiced Nicht fakturiert
118 Not specified Nicht spezifiziert
119 Notes Notizen
120 Open gantt Offenes Portal
121 Open phase Offene Phase
122 Open task Aufgabe öffnen
123 Order Accepted
124 Order Proposed
125 Order by state Nach Bundesland sortieren
126 Package
127 Parent project Übergeordnetes Projekt
128 Parent task Übergeordnete Aufgabe
129 Person In Charge Verantwortlicher
130 Phase by line Phase für Phase
131 Phase tasks Phasenaufgaben
132 Phases Phasen
133 Plan project Projekt planen
134 Planification and costs Planung und Kosten
135 Planned Time Planning
136 Planned progress Geplanter Fortschritt
137 Planning Planung
138 Please select project Bitte wählen Sie ein Projekt
139 Please select user Bitte Benutzer auswählen
140 Predecessors tasks Aufgaben des Vorgängers
141 Product Produkt
142 Production Produktion
143 Progress Fortschritte
144 Progress (%) Fortschritt (%)
145 Project Projekt
146 Project Calendar Projektkalender
147 Project Category Projektkategorie
148 Project Folder Projektordner
149 Project Folders Projektordner
150 Project Gantt Projekt Gantt
151 Project Label Projekt-Label
152 Project Phase Projektphase
153 Project Planning Time Spent
154 Project Task Projektaufgabe
155 Project Task Tree Projektaufgabenbaum
156 Project Tasks Projektaufgaben
157 Project Wiki Projekt-Wiki
158 Project alone Projekt alleine
159 Project phase Projektphase
160 Project phases Projektphasen
161 Project planning Projektplanung
162 Project set Projektset
163 Project template
164 Project type select Projekttyp auswählen
165 Project/Business (Project) Projekt/Geschäft (Projekt)
166 Project/Phase Projekt/Phase
167 Projects Projekte
168 Projects Folder Projektordner
169 Purchase order lines Bestellzeilen
170 Purchases Einkäufe
171 Quantity Menge
172 Related Projects Verwandte Projekte
173 Related tasks Verwandte Aufgaben
174 Remove lines Linien entfernen
175 Remove selected lines Markierte Zeilen entfernen
176 Reportings Berichte
177 Reports Berichte
178 Reset to New Zurücksetzen auf neu
179 Resource Ressource
180 Resource booking Ressourcenbuchung
181 Resource bookings Ressourcenbuchungen
182 Resource management Ressourcenmanagement
183 Resource type Ressourcentyp
184 Resource types Ressourcentypen
185 Resources Ressourcen
186 Roadmap
187 Sale order lines Verkaufsauftragszeilen
188 Sales Umsatz
189 Select Projects Projekte auswählen
190 Select Users Benutzer auswählen
191 Select lines to remove
192 Select new lines Neue Zeilen auswählen
193 Sequence Sequenz
194 Serial/batch number Serien-/Chargennummer
195 Show expense lines Spesenzeilen anzeigen
196 Show phases elements Phasenelemente anzeigen
197 Show production orders Fertigungsaufträge anzeigen
198 Show purchase order lines Bestellzeilen anzeigen
199 Show sale order lines Verkaufsauftragszeilen anzeigen
200 Signature
201 Start Start
202 Start tasks to finish Aufgaben starten, um sie zu beenden
203 Start tasks to start Aufgaben zum Starten starten
204 Status Status
205 Stop Stopp
206 Subject Betreff
207 Supplier Invoice lines Lieferantenrechnungszeilen
208 Supplier contracts
209 Synchronize Synchronisieren
210 Take charge Übernehmen Sie die Verantwortung
211 Task Aufgabe
212 Task Invoicing Aufgabe Fakturierung
213 Task Tree Aufgabenbaum
214 Task assigned to
215 Task assigned to the client
216 Task assigned to the provider
217 Task by line Aufgabe pro Zeile
218 Task date Aufgabendatum
219 Task deadline Aufgaben-Deadline
220 Task end Aufgabenende
221 Task history Aufgabenhistorie
222 Task template
223 Task template list Aufgabenvorlagenliste
224 Task templates
225 Task updated Aufgabe aktualisiert
226 Tasks Aufgaben
227 Tasks to finish before finish
228 Tasks to start before start
229 Team Team
230 Team task list Teamaufgabenliste
231 Template
232 The company %s doesn't have any configured sequence for Project
233 The deep limit of the project is too high Die tiefe Grenze des Projekts ist zu hoch.
234 The selected project/task doesn't contain any customers Das ausgewählte Projekt/Aufgabe enthält keine Kunden.
235 Ticket
236 Tickets
237 Time Spent Zeitaufwand
238 Timer Timer
239 Timer list Timerliste
240 Title Titel
241 To Date Bis heute
242 To Invoice Zur Rechnung
243 To date Bis heute
244 Tools Werkzeuge
245 Total duration (Hours) Gesamtdauer (Stunden)
246 Total planned hours Summe der geplanten Stunden
247 Tree view Strukturansicht
248 Type Typ
249 Type of authorized activities Art der autorisierten Aktivitäten
250 Type of authorized categories Art der autorisierten Kategorien
251 Unit Einheit
252 Unit price Stückpreis
253 Unlink selected lines Löscht die Verknüpfung ausgewählter Leitungen
254 Update period according to task Aktualisierungszeitraum je nach Aufgabe
255 Urgent Dringend
256 User Benutzer
257 User Gantt Benutzer-Gantt
258 User Task Benutzeraufgabe
259 Users Benutzer
260 Validated Timesheet lines Validierte Stundenzettelzeilen
261 Waiting Timesheet lines Wartende Stundenzettelzeilen
262 Wiki Wiki
263 You have no active team, the planning can't be generated Du hast kein aktives Team, die Planung kann nicht generiert werden.
264 You have no projects or tasks bound to you, your planning can't be generated. Sie haben keine Projekte oder Aufgaben an sich gebunden, Ihre Planung kann nicht generiert werden.
265 You have selected no team for this project Sie haben kein Team für dieses Projekt ausgewählt.
266 Your team has no projects or tasks bound to it, the planning can't be generated. Ihr Team hat keine Projekte oder Aufgaben, an die es gebunden ist, die Planung kann nicht generiert werden.
267 hours Stunden
268 project-Resources Projekt-Ressourcen

View File

@ -0,0 +1,277 @@
"key","message","comment","context"
"%s project",,,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>",,,
"Accept Order",,,
"Actions",,,
"Add multiple lines",,,
"Add selected lines",,,
"All phase tasks",,,
"All phases",,,
"All tasks",,,
"Analytic",,,
"Announcement",,,
"App project",,,
"Assigned to",,,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource",,,
"Business",,,
"Business project",,,
"Cancel",,,
"Canceled",,,
"Category",,,
"Characteristics",,,
"Child Projects",,,
"Code",,,
"Company",,,
"Configuration",,,
"Configurations",,,
"Content",,,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project",,,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency",,,
"Customer",,,
"Customer Contact",,,
"Customer Invoice lines",,,
"Customer contracts",,,
"Daily planned charge in a month in an average per employee",,,
"Daily planned charge in a month per employee",,,
"Daily planned charge in a month per project",,,
"Dates",,,
"Deadline",,,
"Deadline Today",,,
"Deadline Tomorrow",,,
"Deadline Yesterday",,,
"Default status",,,
"Delay to start (Hours)",,,
"Description",,,
"Due Date",,,
"Duration (Hours)",,,
"Duration hours",,,
"Employee",,,
"Enable task signature",,,
"Enter Time spent",,,
"Estimated time",,,
"Estimated time (in days)",,,
"Estimated time (in hours)",,,
"Exclude planning",,,
"Expense lines",,,
"Expenses",,,
"Extends members from parent",,,
"Financial Data",,,
"Financial Report",,,
"Finish",,,
"Finish tasks to finish",,,
"Finish tasks to start",,,
"Finished",,,
"Follow-up",,,
"Followers",,,
"Frequency",,,
"From Date",,,
"From date",,,
"Gantt",,,
"Gantt with project",,,
"Gantt with user",,,
"Gen proj type per order line",,,
"Generate quotation",,,
"Generate sequence for project",,,
"Generated project",,,
"High",,,
"Historical",,,
"Image",,,
"Import all members",,,
"Imputable",,,
"In Progress",,,
"Internal Description",,,
"Invoiced",,,
"Invoices",,,
"Invoicing",,,
"Is close",,,
"Is open",,,
"Is unique task for multiple quantity",,,
"Log Times",,,
"Low",,,
"Manage lines",,,
"Members",,,
"Membres",,,
"My projects",,,
"My tasks due",,,
"My tasks to do",,,
"My today planning",,,
"My upcoming planning",,,
"Name",,,
"New",,,
"New line",,,
"New task",,,
"New ticket",,,
"Normal",,,
"Not invoiced",,,
"Not specified",,,
"Notes",,,
"Open gantt",,,
"Open phase",,,
"Open task",,,
"Order Accepted",,,
"Order Proposed",,,
"Order by state",,,
"Package",,,
"Parent project",,,
"Parent task",,,
"Person In Charge",,,
"Phase by line",,,
"Phase tasks",,,
"Phases",,,
"Plan project",,,
"Planification and costs",,,
"Planned Time Planning",,,
"Planned charge",,,
"Planned progress",,,
"Planning",,,
"Please select project",,,
"Please select user",,,
"Predecessors tasks",,,
"Product",,,
"Production",,,
"Progress",,,
"Progress (%)",,,
"Project",,,
"Project Calendar",,,
"Project Folder",,,
"Project Folders",,,
"Project Gantt",,,
"Project Label",,,
"Project Phase",,,
"Project Task",,,
"Project Task Tree",,,
"Project Tasks",,,
"Project Wiki",,,
"Project alone",,,
"Project phase",,,
"Project phases",,,
"Project planning",,,
"Project set",,,
"Project template",,,
"Project type select",,,
"Project.toInvoice","To invoice",,
"Project/Business (Project)",,,
"Project/Phase",,,
"Projects",,,
"Projects Financial Report",,,
"Projects Folder",,,
"Projects Planification and costs",,,
"Purchase order lines",,,
"Purchases",,,
"Quantity",,,
"Related Projects",,,
"Related tasks",,,
"Remove lines",,,
"Remove selected lines",,,
"Reportings",,,
"Reports",,,
"Reset to New",,,
"Resource",,,
"Resource booking",,,
"Resource bookings",,,
"Resource management",,,
"Resource type",,,
"Resource types",,,
"Resources",,,
"Roadmap",,,
"Sale order lines",,,
"Sales",,,
"Select Projects",,,
"Select Users",,,
"Select lines to remove",,,
"Select new lines",,,
"Sequence",,,
"Serial/batch number",,,
"Show expense lines",,,
"Show phases elements",,,
"Show production orders",,,
"Show purchase order lines",,,
"Show sale order lines",,,
"Signature",,,
"Start",,,
"Start tasks to finish",,,
"Start tasks to start",,,
"Status",,,
"Stop",,,
"Subject",,,
"Supplier Invoice lines",,,
"Supplier contracts",,,
"Synchronize",,,
"Take charge",,,
"Task",,,
"Task Invoicing",,,
"Task Tree",,,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line",,,
"Task date",,,
"Task deadline",,,
"Task end",,,
"Task history",,,
"Task template",,,
"Task template list",,,
"Task templates",,,
"Task updated",,,
"Tasks",,,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team",,,
"Team Task Category",,,
"Team task list",,,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high",,,
"The selected project/task doesn't contain any customers",,,
"Ticket",,,
"Tickets",,,
"Time Spent",,,
"Timer",,,
"Timer list",,,
"Title",,,
"To Date",,,
"To Invoice",,,
"To date",,,
"Tools",,,
"Total duration (Hours)",,,
"Total planned hours",,,
"Tree view",,,
"Type",,,
"Type of authorized activities",,,
"Type of authorized categories",,,
"Unit",,,
"Unit price",,,
"Unlink selected lines",,,
"Update period according to task",,,
"Urgent",,,
"User",,,
"User Gantt",,,
"User Task",,,
"Users",,,
"Validated Timesheet lines",,,
"Waiting Timesheet lines",,,
"Wiki",,,
"You have no active team, the planning can't be generated",,,
"You have no projects or tasks bound to you, your planning can't be generated.",,,
"You have selected no team for this project",,,
"Your team has no projects or tasks bound to it, the planning can't be generated.",,,
"hours",,,
"project-Resources",,,
1 key message comment context
2 %s project
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span>
15 Accept Order
16 Actions
17 Add multiple lines
18 Add selected lines
19 All phase tasks
20 All phases
21 All tasks
22 Analytic
23 Announcement
24 App project
25 Assigned to
26 Assigning to the customer
27 Assigning to the provider
28 Book resource
29 Business
30 Business project
31 Cancel
32 Canceled
33 Category
34 Characteristics
35 Child Projects
36 Code
37 Company
38 Configuration
39 Configurations
40 Content
41 Contracts
42 Create business project from this template
43 Create invoicing project
44 Create new customer contract
45 Create new supplier contract
46 Create project from this template
47 Currency
48 Customer
49 Customer Contact
50 Customer Invoice lines
51 Customer contracts
52 Daily planned charge in a month in an average per employee
53 Daily planned charge in a month per employee
54 Daily planned charge in a month per project
55 Dates
56 Deadline
57 Deadline Today
58 Deadline Tomorrow
59 Deadline Yesterday
60 Default status
61 Delay to start (Hours)
62 Description
63 Due Date
64 Duration (Hours)
65 Duration hours
66 Employee
67 Enable task signature
68 Enter Time spent
69 Estimated time
70 Estimated time (in days)
71 Estimated time (in hours)
72 Exclude planning
73 Expense lines
74 Expenses
75 Extends members from parent
76 Financial Data
77 Financial Report
78 Finish
79 Finish tasks to finish
80 Finish tasks to start
81 Finished
82 Follow-up
83 Followers
84 Frequency
85 From Date
86 From date
87 Gantt
88 Gantt with project
89 Gantt with user
90 Gen proj type per order line
91 Generate quotation
92 Generate sequence for project
93 Generated project
94 High
95 Historical
96 Image
97 Import all members
98 Imputable
99 In Progress
100 Internal Description
101 Invoiced
102 Invoices
103 Invoicing
104 Is close
105 Is open
106 Is unique task for multiple quantity
107 Log Times
108 Low
109 Manage lines
110 Members
111 Membres
112 My projects
113 My tasks due
114 My tasks to do
115 My today planning
116 My upcoming planning
117 Name
118 New
119 New line
120 New task
121 New ticket
122 Normal
123 Not invoiced
124 Not specified
125 Notes
126 Open gantt
127 Open phase
128 Open task
129 Order Accepted
130 Order Proposed
131 Order by state
132 Package
133 Parent project
134 Parent task
135 Person In Charge
136 Phase by line
137 Phase tasks
138 Phases
139 Plan project
140 Planification and costs
141 Planned Time Planning
142 Planned charge
143 Planned progress
144 Planning
145 Please select project
146 Please select user
147 Predecessors tasks
148 Product
149 Production
150 Progress
151 Progress (%)
152 Project
153 Project Calendar
154 Project Folder
155 Project Folders
156 Project Gantt
157 Project Label
158 Project Phase
159 Project Task
160 Project Task Tree
161 Project Tasks
162 Project Wiki
163 Project alone
164 Project phase
165 Project phases
166 Project planning
167 Project set
168 Project template
169 Project type select
170 Project.toInvoice To invoice
171 Project/Business (Project)
172 Project/Phase
173 Projects
174 Projects Financial Report
175 Projects Folder
176 Projects Planification and costs
177 Purchase order lines
178 Purchases
179 Quantity
180 Related Projects
181 Related tasks
182 Remove lines
183 Remove selected lines
184 Reportings
185 Reports
186 Reset to New
187 Resource
188 Resource booking
189 Resource bookings
190 Resource management
191 Resource type
192 Resource types
193 Resources
194 Roadmap
195 Sale order lines
196 Sales
197 Select Projects
198 Select Users
199 Select lines to remove
200 Select new lines
201 Sequence
202 Serial/batch number
203 Show expense lines
204 Show phases elements
205 Show production orders
206 Show purchase order lines
207 Show sale order lines
208 Signature
209 Start
210 Start tasks to finish
211 Start tasks to start
212 Status
213 Stop
214 Subject
215 Supplier Invoice lines
216 Supplier contracts
217 Synchronize
218 Take charge
219 Task
220 Task Invoicing
221 Task Tree
222 Task assigned to
223 Task assigned to the client
224 Task assigned to the provider
225 Task by line
226 Task date
227 Task deadline
228 Task end
229 Task history
230 Task template
231 Task template list
232 Task templates
233 Task updated
234 Tasks
235 Tasks to finish before finish
236 Tasks to start before start
237 Team
238 Team Task Category
239 Team task list
240 Template
241 The company %s doesn't have any configured sequence for Project
242 The deep limit of the project is too high
243 The selected project/task doesn't contain any customers
244 Ticket
245 Tickets
246 Time Spent
247 Timer
248 Timer list
249 Title
250 To Date
251 To Invoice
252 To date
253 Tools
254 Total duration (Hours)
255 Total planned hours
256 Tree view
257 Type
258 Type of authorized activities
259 Type of authorized categories
260 Unit
261 Unit price
262 Unlink selected lines
263 Update period according to task
264 Urgent
265 User
266 User Gantt
267 User Task
268 Users
269 Validated Timesheet lines
270 Waiting Timesheet lines
271 Wiki
272 You have no active team, the planning can't be generated
273 You have no projects or tasks bound to you, your planning can't be generated.
274 You have selected no team for this project
275 Your team has no projects or tasks bound to it, the planning can't be generated.
276 hours
277 project-Resources

View File

@ -0,0 +1,268 @@
"key","message","comment","context"
"%s project","proyecto %s",,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>","<class='label label-info'>Calculada automáticamente si se deja vacía </span>",,
"Accept Order",,,
"Actions","Acciones",,
"Add multiple lines","Añadir varias líneas",,
"Add selected lines","Añadir líneas seleccionadas",,
"All phase tasks","Todas las tareas de fase",,
"All phases","Todas las fases",,
"All tasks","Todas las tareas",,
"Analytic",,,
"Announcement",,,
"App project","Proyecto de aplicación",,
"Assigned to","Asignado a",,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource","Recursos de libros",,
"Budgeted time",,,
"Business","Negocios",,
"Business project","Proyecto empresarial",,
"Cancel","Cancelar",,
"Canceled","Cancelado",,
"Category","Categoría",,
"Characteristics","Características",,
"Child Projects","Proyectos para niños",,
"Code","Código",,
"Company","Empresa",,
"Configuration","Configuración",,
"Configurations","Configuraciones",,
"Content","Contenido",,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project","Crear proyecto de facturación",,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency","Moneda",,
"Customer","Cliente",,
"Customer Contact","Contacto con el cliente",,
"Customer Invoice lines","Líneas de Factura de Cliente",,
"Customer contracts",,,
"Dates","Fechas",,
"Deadline","Fecha límite",,
"Deadline Today","Fecha límite hoy",,
"Deadline Tomorrow","Fecha límite mañana",,
"Deadline Yesterday","Fecha límite: Ayer",,
"Default status","Status por defecto",,
"Delay to start (Hours)","Retraso en el arranque (Horas)",,
"Description","Descripción",,
"Due Date","Fecha de vencimiento",,
"Duration (Hours)","Duración (Horas)",,
"Duration hours","Duración horas",,
"Enable task signature",,,
"Enter Time spent",,,
"Exclude planning","Excluir la planificación",,
"Expense lines","Líneas de gastos",,
"Expenses","Gastos",,
"Extends members from parent","Extiende a los miembros de los padres",,
"Financial Data","Datos financieros",,
"Financial Report","Informe financiero",,
"Finish","Acabado",,
"Finish tasks to finish","Finalizar tareas a finalizar",,
"Finish tasks to start","Finalizar tareas para iniciar",,
"Finished","Acabado",,
"Follow-up","Seguimiento",,
"Followers","Seguidores",,
"Frequency",,,
"From Date","Desde la fecha",,
"From date","Desde la fecha",,
"Gantt","Gantt",,
"Gantt with project","Gantt con proyecto",,
"Gantt with user","Gantt con el usuario",,
"Gen proj type per order line","Tipo de proyecto por línea de pedido",,
"Generate quotation","Generar oferta",,
"Generate sequence for project",,,
"Generated project","Proyecto generado",,
"High","Alto",,
"Historical","Histórico",,
"Image","Imagen",,
"Import all members","Importar todos los miembros",,
"Imputable","Imputable",,
"In Progress","En progreso",,
"Internal Description",,,
"Invoiced","Facturado",,
"Invoices",,,
"Invoicing","Facturación",,
"Is close","Está cerca",,
"Is open","Está abierto",,
"Is unique task for multiple quantity","Es una tarea única para cantidades múltiples",,
"Log Times","Tiempos de registro",,
"Low","Baja",,
"Manage lines","Administrar líneas",,
"Members","Miembros",,
"Membres","Membres",,
"My projects","Mis proyectos",,
"My tasks due","Mis tareas",,
"My tasks to do","Mis tareas a realizar",,
"My today planning","Mi planificación de hoy",,
"My upcoming planning","Mi próxima planificación",,
"Name","Nombre",,
"New","Nuevo",,
"New line","Nueva línea",,
"New task",,,
"New ticket",,,
"Normal","Normal",,
"Not invoiced","No facturado",,
"Not specified","No especificado",,
"Notes","Notas",,
"Open gantt","Gantt abierto",,
"Open phase","Fase abierta",,
"Open task","Tarea abierta",,
"Order Accepted",,,
"Order Proposed",,,
"Order by state","Ordenar por estado",,
"Package",,,
"Parent project","Proyecto para padres",,
"Parent task","Tarea de los padres",,
"Person In Charge","Persona a Cargo",,
"Phase by line","Fase por línea",,
"Phase tasks","Tareas de la fase",,
"Phases","Fases",,
"Plan project","Planificar el proyecto",,
"Planification and costs","Planificación y costes",,
"Planned Time Planning",,,
"Planned progress","Progreso previsto",,
"Planning","Planificación",,
"Please select project","Por favor, seleccione el proyecto",,
"Please select user","Por favor, seleccione un usuario",,
"Predecessors tasks","Tareas de los predecesores",,
"Product","Producto",,
"Production","Producción",,
"Progress","Progreso",,
"Progress (%)","Progreso (%)",,
"Project","Proyecto",,
"Project Calendar","Calendario del proyecto",,
"Project Category","Categoría del proyecto",,
"Project Folder","Carpeta de proyectos",,
"Project Folders","Carpetas de proyectos",,
"Project Gantt","Proyecto Gantt",,
"Project Label","Etiqueta del proyecto",,
"Project Phase","Fase del proyecto",,
"Project Planning Time Spent",,,
"Project Task","Tarea del proyecto",,
"Project Task Tree","Árbol de tareas del proyecto",,
"Project Tasks","Tareas del proyecto",,
"Project Wiki","Proyecto Wiki",,
"Project alone","Proyecto solo",,
"Project phase","Fase de proyecto",,
"Project phases","Fases del proyecto",,
"Project planning","Planificación de proyectos",,
"Project set","Conjunto de proyectos",,
"Project template",,,
"Project type select","Selección del tipo de proyecto",,
"Project/Business (Project)","Proyecto/Negocio (Proyecto)",,
"Project/Phase","Proyecto/Fase",,
"Projects","Proyectos",,
"Projects Folder","Carpeta de proyectos",,
"Purchase order lines","Líneas de pedido",,
"Purchases","Compras",,
"Quantity","Cantidad",,
"Related Projects","Proyectos relacionados",,
"Related tasks","Tareas relacionadas",,
"Remove lines","Eliminar líneas",,
"Remove selected lines","Eliminar líneas seleccionadas",,
"Reportings","Reportajes",,
"Reports","Informes",,
"Reset to New","Reiniciar a Nuevo",,
"Resource","Recurso",,
"Resource booking","Inscripción de recursos",,
"Resource bookings","Reservas de recursos",,
"Resource management","Gestión de recursos",,
"Resource type","Tipo de recurso",,
"Resource types","Tipos de recursos",,
"Resources","Recursos de la campaña",,
"Roadmap",,,
"Sale order lines","Líneas de pedidos de venta",,
"Sales","Ventas",,
"Select Projects","Seleccione Proyectos",,
"Select Users","Seleccione Usuarios",,
"Select lines to remove",,,
"Select new lines","Seleccionar nuevas líneas",,
"Sequence","Secuencia",,
"Serial/batch number","Número de serie/de lote",,
"Show expense lines","Mostrar líneas de gastos",,
"Show phases elements","Mostrar elementos de fases",,
"Show production orders","Mostrar órdenes de fabricación",,
"Show purchase order lines","Mostrar líneas de pedido",,
"Show sale order lines","Mostrar líneas de pedidos de venta",,
"Signature",,,
"Start","Inicio",,
"Start tasks to finish","Iniciar tareas para terminar",,
"Start tasks to start","Iniciar tareas para iniciar",,
"Status","Estado",,
"Stop","Parar",,
"Subject","Tema",,
"Supplier Invoice lines","Proveedores Líneas de facturación",,
"Supplier contracts",,,
"Synchronize","Sincronizar",,
"Take charge","Hágase cargo",,
"Task","Tarea",,
"Task Invoicing","Facturación de tareas",,
"Task Tree","Árbol de tareas",,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line","Tarea por línea",,
"Task date","Fecha de la tarea",,
"Task deadline","Plazo de la tarea",,
"Task end","Fin de la tarea",,
"Task history","Historial de tareas",,
"Task template",,,
"Task template list","Plantilla de tareas",,
"Task templates",,,
"Task updated","Tarea actualizada",,
"Tasks","Tareas",,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team","Equipo",,
"Team task list","Lista de tareas del equipo",,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high","El límite profundo del proyecto es demasiado alto",,
"The selected project/task doesn't contain any customers","El proyecto/tarea seleccionado no contiene clientes",,
"Ticket",,,
"Tickets",,,
"Time Spent","Tiempo Pasado",,
"Timer","Temporizador",,
"Timer list","Lista de temporizadores",,
"Title","Título",,
"To Date","Hasta la fecha",,
"To Invoice","Para Facturar",,
"To date","Hasta la fecha",,
"Tools","Herramientas",,
"Total duration (Hours)","Duración total (Horas)",,
"Total planned hours","Horas teóricas totales",,
"Tree view","Vista de árbol",,
"Type","Tipo",,
"Type of authorized activities","Tipo de actividades autorizadas",,
"Type of authorized categories","Tipo de categorías autorizadas",,
"Unit","Unidad",,
"Unit price","Precio unitario",,
"Unlink selected lines","Desenlazar líneas seleccionadas",,
"Update period according to task","Período de actualización según la tarea",,
"Urgent","Urgente",,
"User","Usuario",,
"User Gantt","Usuario Gantt",,
"User Task","Tarea del usuario",,
"Users","Usuarios",,
"Validated Timesheet lines","Líneas de hoja de horas validadas",,
"Waiting Timesheet lines","Líneas de espera de la hoja de tiempos",,
"Wiki","Wiki",,
"You have no active team, the planning can't be generated","No tienes un equipo activo, la planificación no puede ser generada",,
"You have no projects or tasks bound to you, your planning can't be generated.","No tienes proyectos ni tareas ligadas a ti, tu planificación no puede ser generada.",,
"You have selected no team for this project","No ha seleccionado ningún equipo para este proyecto",,
"Your team has no projects or tasks bound to it, the planning can't be generated.","Su equipo no tiene proyectos o tareas vinculadas a él, la planificación no puede ser generada.",,
"hours","horario",,
"project-Resources","proyectos-Recursos",,
1 key message comment context
2 %s project proyecto %s
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span> <class='label label-info'>Calculada automáticamente si se deja vacía </span>
15 Accept Order
16 Actions Acciones
17 Add multiple lines Añadir varias líneas
18 Add selected lines Añadir líneas seleccionadas
19 All phase tasks Todas las tareas de fase
20 All phases Todas las fases
21 All tasks Todas las tareas
22 Analytic
23 Announcement
24 App project Proyecto de aplicación
25 Assigned to Asignado a
26 Assigning to the customer
27 Assigning to the provider
28 Book resource Recursos de libros
29 Budgeted time
30 Business Negocios
31 Business project Proyecto empresarial
32 Cancel Cancelar
33 Canceled Cancelado
34 Category Categoría
35 Characteristics Características
36 Child Projects Proyectos para niños
37 Code Código
38 Company Empresa
39 Configuration Configuración
40 Configurations Configuraciones
41 Content Contenido
42 Contracts
43 Create business project from this template
44 Create invoicing project Crear proyecto de facturación
45 Create new customer contract
46 Create new supplier contract
47 Create project from this template
48 Currency Moneda
49 Customer Cliente
50 Customer Contact Contacto con el cliente
51 Customer Invoice lines Líneas de Factura de Cliente
52 Customer contracts
53 Dates Fechas
54 Deadline Fecha límite
55 Deadline Today Fecha límite hoy
56 Deadline Tomorrow Fecha límite mañana
57 Deadline Yesterday Fecha límite: Ayer
58 Default status Status por defecto
59 Delay to start (Hours) Retraso en el arranque (Horas)
60 Description Descripción
61 Due Date Fecha de vencimiento
62 Duration (Hours) Duración (Horas)
63 Duration hours Duración horas
64 Enable task signature
65 Enter Time spent
66 Exclude planning Excluir la planificación
67 Expense lines Líneas de gastos
68 Expenses Gastos
69 Extends members from parent Extiende a los miembros de los padres
70 Financial Data Datos financieros
71 Financial Report Informe financiero
72 Finish Acabado
73 Finish tasks to finish Finalizar tareas a finalizar
74 Finish tasks to start Finalizar tareas para iniciar
75 Finished Acabado
76 Follow-up Seguimiento
77 Followers Seguidores
78 Frequency
79 From Date Desde la fecha
80 From date Desde la fecha
81 Gantt Gantt
82 Gantt with project Gantt con proyecto
83 Gantt with user Gantt con el usuario
84 Gen proj type per order line Tipo de proyecto por línea de pedido
85 Generate quotation Generar oferta
86 Generate sequence for project
87 Generated project Proyecto generado
88 High Alto
89 Historical Histórico
90 Image Imagen
91 Import all members Importar todos los miembros
92 Imputable Imputable
93 In Progress En progreso
94 Internal Description
95 Invoiced Facturado
96 Invoices
97 Invoicing Facturación
98 Is close Está cerca
99 Is open Está abierto
100 Is unique task for multiple quantity Es una tarea única para cantidades múltiples
101 Log Times Tiempos de registro
102 Low Baja
103 Manage lines Administrar líneas
104 Members Miembros
105 Membres Membres
106 My projects Mis proyectos
107 My tasks due Mis tareas
108 My tasks to do Mis tareas a realizar
109 My today planning Mi planificación de hoy
110 My upcoming planning Mi próxima planificación
111 Name Nombre
112 New Nuevo
113 New line Nueva línea
114 New task
115 New ticket
116 Normal Normal
117 Not invoiced No facturado
118 Not specified No especificado
119 Notes Notas
120 Open gantt Gantt abierto
121 Open phase Fase abierta
122 Open task Tarea abierta
123 Order Accepted
124 Order Proposed
125 Order by state Ordenar por estado
126 Package
127 Parent project Proyecto para padres
128 Parent task Tarea de los padres
129 Person In Charge Persona a Cargo
130 Phase by line Fase por línea
131 Phase tasks Tareas de la fase
132 Phases Fases
133 Plan project Planificar el proyecto
134 Planification and costs Planificación y costes
135 Planned Time Planning
136 Planned progress Progreso previsto
137 Planning Planificación
138 Please select project Por favor, seleccione el proyecto
139 Please select user Por favor, seleccione un usuario
140 Predecessors tasks Tareas de los predecesores
141 Product Producto
142 Production Producción
143 Progress Progreso
144 Progress (%) Progreso (%)
145 Project Proyecto
146 Project Calendar Calendario del proyecto
147 Project Category Categoría del proyecto
148 Project Folder Carpeta de proyectos
149 Project Folders Carpetas de proyectos
150 Project Gantt Proyecto Gantt
151 Project Label Etiqueta del proyecto
152 Project Phase Fase del proyecto
153 Project Planning Time Spent
154 Project Task Tarea del proyecto
155 Project Task Tree Árbol de tareas del proyecto
156 Project Tasks Tareas del proyecto
157 Project Wiki Proyecto Wiki
158 Project alone Proyecto solo
159 Project phase Fase de proyecto
160 Project phases Fases del proyecto
161 Project planning Planificación de proyectos
162 Project set Conjunto de proyectos
163 Project template
164 Project type select Selección del tipo de proyecto
165 Project/Business (Project) Proyecto/Negocio (Proyecto)
166 Project/Phase Proyecto/Fase
167 Projects Proyectos
168 Projects Folder Carpeta de proyectos
169 Purchase order lines Líneas de pedido
170 Purchases Compras
171 Quantity Cantidad
172 Related Projects Proyectos relacionados
173 Related tasks Tareas relacionadas
174 Remove lines Eliminar líneas
175 Remove selected lines Eliminar líneas seleccionadas
176 Reportings Reportajes
177 Reports Informes
178 Reset to New Reiniciar a Nuevo
179 Resource Recurso
180 Resource booking Inscripción de recursos
181 Resource bookings Reservas de recursos
182 Resource management Gestión de recursos
183 Resource type Tipo de recurso
184 Resource types Tipos de recursos
185 Resources Recursos de la campaña
186 Roadmap
187 Sale order lines Líneas de pedidos de venta
188 Sales Ventas
189 Select Projects Seleccione Proyectos
190 Select Users Seleccione Usuarios
191 Select lines to remove
192 Select new lines Seleccionar nuevas líneas
193 Sequence Secuencia
194 Serial/batch number Número de serie/de lote
195 Show expense lines Mostrar líneas de gastos
196 Show phases elements Mostrar elementos de fases
197 Show production orders Mostrar órdenes de fabricación
198 Show purchase order lines Mostrar líneas de pedido
199 Show sale order lines Mostrar líneas de pedidos de venta
200 Signature
201 Start Inicio
202 Start tasks to finish Iniciar tareas para terminar
203 Start tasks to start Iniciar tareas para iniciar
204 Status Estado
205 Stop Parar
206 Subject Tema
207 Supplier Invoice lines Proveedores Líneas de facturación
208 Supplier contracts
209 Synchronize Sincronizar
210 Take charge Hágase cargo
211 Task Tarea
212 Task Invoicing Facturación de tareas
213 Task Tree Árbol de tareas
214 Task assigned to
215 Task assigned to the client
216 Task assigned to the provider
217 Task by line Tarea por línea
218 Task date Fecha de la tarea
219 Task deadline Plazo de la tarea
220 Task end Fin de la tarea
221 Task history Historial de tareas
222 Task template
223 Task template list Plantilla de tareas
224 Task templates
225 Task updated Tarea actualizada
226 Tasks Tareas
227 Tasks to finish before finish
228 Tasks to start before start
229 Team Equipo
230 Team task list Lista de tareas del equipo
231 Template
232 The company %s doesn't have any configured sequence for Project
233 The deep limit of the project is too high El límite profundo del proyecto es demasiado alto
234 The selected project/task doesn't contain any customers El proyecto/tarea seleccionado no contiene clientes
235 Ticket
236 Tickets
237 Time Spent Tiempo Pasado
238 Timer Temporizador
239 Timer list Lista de temporizadores
240 Title Título
241 To Date Hasta la fecha
242 To Invoice Para Facturar
243 To date Hasta la fecha
244 Tools Herramientas
245 Total duration (Hours) Duración total (Horas)
246 Total planned hours Horas teóricas totales
247 Tree view Vista de árbol
248 Type Tipo
249 Type of authorized activities Tipo de actividades autorizadas
250 Type of authorized categories Tipo de categorías autorizadas
251 Unit Unidad
252 Unit price Precio unitario
253 Unlink selected lines Desenlazar líneas seleccionadas
254 Update period according to task Período de actualización según la tarea
255 Urgent Urgente
256 User Usuario
257 User Gantt Usuario Gantt
258 User Task Tarea del usuario
259 Users Usuarios
260 Validated Timesheet lines Líneas de hoja de horas validadas
261 Waiting Timesheet lines Líneas de espera de la hoja de tiempos
262 Wiki Wiki
263 You have no active team, the planning can't be generated No tienes un equipo activo, la planificación no puede ser generada
264 You have no projects or tasks bound to you, your planning can't be generated. No tienes proyectos ni tareas ligadas a ti, tu planificación no puede ser generada.
265 You have selected no team for this project No ha seleccionado ningún equipo para este proyecto
266 Your team has no projects or tasks bound to it, the planning can't be generated. Su equipo no tiene proyectos o tareas vinculadas a él, la planificación no puede ser generada.
267 hours horario
268 project-Resources proyectos-Recursos

View File

@ -0,0 +1,277 @@
"key","message","comment","context"
"%s project","Projet %s",,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>","<span class='label label-info'>Calculé automatiquement si laissé vide</span>",,
"Accept Order","Accepter devis",,
"Actions",,,
"Add multiple lines","Ajouter plusieurs lignes",,
"Add selected lines","Ajouter les lignes sélectionnées",,
"All phase tasks","Toutes les tâches de phase",,
"All phases","Toutes les phases",,
"All tasks","Toutes les tâches",,
"Analytic","Analytique",,
"Announcement",,,
"App project","App Projet",,
"Assigned to","Assigné à",,
"Assigning to the customer","Affecter au client",,
"Assigning to the provider","Affecter au prestataire",,
"Book resource","Réserver une ressource",,
"Business","Affaire",,
"Business project","Affaire",,
"Cancel","Annuler",,
"Canceled","Annuler",,
"Category",,,
"Characteristics","Caractéristiques",,
"Child Projects","Projets enfants",,
"Code",,,
"Company","Société",,
"Configuration",,,
"Configurations",,,
"Content","Contenu",,
"Contracts","Contrats",,
"Create business project from this template","Créer affaire à partir ce de modèle",,
"Create invoicing project","Facturer l'affaire",,
"Create new customer contract","Créer un nouveau contrat client",,
"Create new supplier contract","Créer un nouveau contrat fournisseur",,
"Create project from this template","Créer projet à partir ce de modèle",,
"Currency",,,
"Customer","Client",,
"Customer Contact","Contact client",,
"Customer Invoice lines","Lignes de factures client",,
"Customer contracts","Contrats clients",,
"Daily planned charge in a month in an average per employee",,,
"Daily planned charge in a month per employee",,,
"Daily planned charge in a month per project",,,
"Dates",,,
"Deadline","Date d'échéance",,
"Deadline Today","Echéance aujourd'hui",,
"Deadline Tomorrow","Echéance demain",,
"Deadline Yesterday","Echéance hier",,
"Default status","Statut par défaut",,
"Delay to start (Hours)","Délai pour commencer (Heures)",,
"Description",,,
"Due Date","Date d'échéance",,
"Duration (Hours)","Durée (Heures)",,
"Duration hours","Durée (Heures)",,
"Employee",,,
"Enable task signature","Activer la signature de tâche",,
"Enter Time spent","Saisir temps passé",,
"Estimated time","Temps estimé",,
"Estimated time (in days)","Temps estimé (en jours)",,
"Estimated time (in hours)","Temps estimé (en heures)",,
"Exclude planning","Exclure planification",,
"Expense lines",,,
"Expenses",,,
"Extends members from parent","Hériter des membres du projet parent",,
"Financial Data","Informations financières",,
"Financial Report","Rapport financier",,
"Finish","Terminer",,
"Finish tasks to finish",,,
"Finish tasks to start",,,
"Finished","Terminé",,
"Follow-up",,,
"Followers",,,
"Frequency","Fréquence",,
"From Date","Du",,
"From date",,,
"Gantt",,,
"Gantt with project","Gantt avec le projet",,
"Gantt with user","Gantt avec l'utilisateur",,
"Gen proj type per order line","Type d'élément généré par ligne de commande",,
"Generate quotation","Générer un devis",,
"Generate sequence for project","Générer une séquence pour les projets",,
"Generated project","Projet généré",,
"High",,,
"Historical",,,
"Image",,,
"Import all members","Importer tous les membres",,
"Imputable",,,
"In Progress","En Cours",,
"Internal Description","Description interne",,
"Invoiced",,,
"Invoices","Factures",,
"Invoicing","Facturation",,
"Is close",,,
"Is open",,,
"Is unique task for multiple quantity","Est une tâche unique pour plusieurs quantité",,
"Log Times","Temps passés",,
"Low",,,
"Manage lines","Gérer les lignes",,
"Members","Membres",,
"Membres","Membres",,
"My projects","Mes projets",,
"My tasks due","Mes tâches en retard",,
"My tasks to do","Mes tâches en cours",,
"My today planning","Mon planning du jour",,
"My upcoming planning","Mon planning à venir",,
"Name","Nom",,
"New","Nouveau",,
"New line","Nouvelle ligne",,
"New task","Nouvelle tâche",,
"New ticket","Nouveau ticket",,
"Normal",,,
"Not invoiced",,,
"Not specified","Non spécifié",,
"Notes",,,
"Open gantt",,,
"Open phase","Ouvrir la phase",,
"Open task","Ouvrir tâche",,
"Order Accepted","Devis accepté",,
"Order Proposed","Devis proposé",,
"Order by state","Trier par statut",,
"Package","Forfait",,
"Parent project","Projet parent",,
"Parent task","Tâche parent",,
"Person In Charge","Responsable",,
"Phase by line","Phase par ligne",,
"Phase tasks",,,
"Phases",,,
"Plan project","Planifier des temps",,
"Planification and costs","Planification et coûts",,
"Planned Time Planning",,,
"Planned charge",,,
"Planned progress","Avancement planifié",,
"Planning","Planification",,
"Please select project","Veuillez sélectionner un projet",,
"Please select user","Veuillez sélectionner un utilisateur",,
"Predecessors tasks","Tâches précédentes",,
"Product","Produit",,
"Production",,,
"Progress","Progression",,
"Progress (%)","Progression(%)",,
"Project","Projet",,
"Project Calendar","Calendrier projet",,
"Project Folder","Dossier",,
"Project Folders","Dossiers du projet",,
"Project Gantt","Projet Gantt",,
"Project Label","Libellé projet",,
"Project Phase","Phase projet",,
"Project Task","Tâche",,
"Project Task Tree","Arborescence des tâches",,
"Project Tasks","Tâches",,
"Project Wiki","Wiki des projets",,
"Project alone","Projet seul",,
"Project phase","Phase de projet",,
"Project phases","Phases de projet",,
"Project planning","Planning projet",,
"Project set","Projets",,
"Project template","Modèle de projet",,
"Project type select","Type de projet",,
"Project.toInvoice","Facturer",,
"Project/Business (Project)",,,
"Project/Phase","Projet/Phase",,
"Projects","Projets",,
"Projects Financial Report",,,
"Projects Folder","Dossier de projets",,
"Projects Planification and costs",,,
"Purchase order lines","Lignes de commandes d'achat",,
"Purchases",,,
"Quantity","Quantité",,
"Related Projects","Projets rattachés",,
"Related tasks",,,
"Remove lines","Retirer des lignes",,
"Remove selected lines","Retirer les lignes sélectionnées",,
"Reportings",,,
"Reports",,,
"Reset to New","Repasser à nouveau",,
"Resource",,,
"Resource booking","Réservation ressources",,
"Resource bookings","Réservation ressources",,
"Resource management","Management des ressources",,
"Resource type","Type de ressources",,
"Resource types","Types de ressources",,
"Resources",,,
"Roadmap",,,
"Sale order lines","Lignes de commande",,
"Sales",,,
"Select Projects","Projets",,
"Select Users","Utilisateurs",,
"Select lines to remove",,,
"Select new lines","Ajouter des lignes",,
"Sequence","Séquence",,
"Serial/batch number",,,
"Show expense lines","Voir les lignes de note de frais",,
"Show phases elements","Voir les éléments de phase",,
"Show production orders","Voir les ordres de production",,
"Show purchase order lines","Voir les lignes d'achat",,
"Show sale order lines","Voir les lignes de commande ",,
"Signature",,,
"Start","Démarrer",,
"Start tasks to finish",,,
"Start tasks to start",,,
"Status","Statut",,
"Stop","Arrêter",,
"Subject",,,
"Supplier Invoice lines","Lignes de factures fournisseur",,
"Supplier contracts","Contrats fournisseurs",,
"Synchronize","Synchroniser",,
"Take charge","Prendre en charge",,
"Task","Tâche",,
"Task Invoicing","Facturation des tâches",,
"Task Tree","Arborescence des tâches",,
"Task assigned to","Tâche Assignée à",,
"Task assigned to the client","Tâche assignée au client",,
"Task assigned to the provider","Tâche Assignée au prestataire",,
"Task by line","Tâche par ligne",,
"Task date","Date",,
"Task deadline","Date limite",,
"Task end","Fin de tâche",,
"Task history","Historique des tâches",,
"Task template","Modèle de tâche",,
"Task template list","Liste de modèle de tâche",,
"Task templates","Modèles de tâches",,
"Task updated","Tâche mise à jour",,
"Tasks","Tâches",,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team","Équipe",,
"Team Task Category",,,
"Team task list","List des tâches",,
"Template","Modèle",,
"The company %s doesn't have any configured sequence for Project","La société %s n'a pas de séquence configurer pour les projets",,
"The deep limit of the project is too high","La limite de ce project est trop élevée",,
"The selected project/task doesn't contain any customers","Le projet/tâche sélectionné(e) ne contient pas de client",,
"Ticket",,,
"Tickets","Les Tickets",,
"Time Spent","Temps passés",,
"Timer","Chronomètre",,
"Timer list","Liste de chronomètre",,
"Title","Titre",,
"To Date","A",,
"To Invoice","A facturer",,
"To date",,,
"Tools",,,
"Total duration (Hours)","Durée total (Heures)",,
"Total planned hours","Temps total planifié",,
"Tree view","Arborescence des tâches",,
"Type",,,
"Type of authorized activities","Type dactivités autorisées",,
"Type of authorized categories","Type de catégories autorisées",,
"Unit",,,
"Unit price",,,
"Unlink selected lines","Délier les lignes selectionnées",,
"Update period according to task","Mettre à jour la période par rapport à la tâche",,
"Urgent",,,
"User",,,
"User Gantt","Gantt utilisateur",,
"User Task","Tâche utilisateur",,
"Users",,,
"Validated Timesheet lines","Lignes de feuilles de temps validées",,
"Waiting Timesheet lines","Lignes de feuilles de temps en attente",,
"Wiki",,,
"You have no active team, the planning can't be generated","Vous n'avez pas d'équipe active, le planning ne sera pas généré",,
"You have no projects or tasks bound to you, your planning can't be generated.","Vous n'êtes sur aucun projet ou aucune tâche, votre planning ne sera pas généré",,
"You have selected no team for this project","Vous n'avez sélectionné aucune équipe pour ce projet.",,
"Your team has no projects or tasks bound to it, the planning can't be generated.","Votre équipe n'est sur aucun projet ou aucune tâche, votre planning ne sera pas généré.",,
"hours",,,
"project-Resources",,,
1 key message comment context
2 %s project Projet %s
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span> <span class='label label-info'>Calculé automatiquement si laissé vide</span>
15 Accept Order Accepter devis
16 Actions
17 Add multiple lines Ajouter plusieurs lignes
18 Add selected lines Ajouter les lignes sélectionnées
19 All phase tasks Toutes les tâches de phase
20 All phases Toutes les phases
21 All tasks Toutes les tâches
22 Analytic Analytique
23 Announcement
24 App project App Projet
25 Assigned to Assigné à
26 Assigning to the customer Affecter au client
27 Assigning to the provider Affecter au prestataire
28 Book resource Réserver une ressource
29 Business Affaire
30 Business project Affaire
31 Cancel Annuler
32 Canceled Annuler
33 Category
34 Characteristics Caractéristiques
35 Child Projects Projets enfants
36 Code
37 Company Société
38 Configuration
39 Configurations
40 Content Contenu
41 Contracts Contrats
42 Create business project from this template Créer affaire à partir ce de modèle
43 Create invoicing project Facturer l'affaire
44 Create new customer contract Créer un nouveau contrat client
45 Create new supplier contract Créer un nouveau contrat fournisseur
46 Create project from this template Créer projet à partir ce de modèle
47 Currency
48 Customer Client
49 Customer Contact Contact client
50 Customer Invoice lines Lignes de factures client
51 Customer contracts Contrats clients
52 Daily planned charge in a month in an average per employee
53 Daily planned charge in a month per employee
54 Daily planned charge in a month per project
55 Dates
56 Deadline Date d'échéance
57 Deadline Today Echéance aujourd'hui
58 Deadline Tomorrow Echéance demain
59 Deadline Yesterday Echéance hier
60 Default status Statut par défaut
61 Delay to start (Hours) Délai pour commencer (Heures)
62 Description
63 Due Date Date d'échéance
64 Duration (Hours) Durée (Heures)
65 Duration hours Durée (Heures)
66 Employee
67 Enable task signature Activer la signature de tâche
68 Enter Time spent Saisir temps passé
69 Estimated time Temps estimé
70 Estimated time (in days) Temps estimé (en jours)
71 Estimated time (in hours) Temps estimé (en heures)
72 Exclude planning Exclure planification
73 Expense lines
74 Expenses
75 Extends members from parent Hériter des membres du projet parent
76 Financial Data Informations financières
77 Financial Report Rapport financier
78 Finish Terminer
79 Finish tasks to finish
80 Finish tasks to start
81 Finished Terminé
82 Follow-up
83 Followers
84 Frequency Fréquence
85 From Date Du
86 From date
87 Gantt
88 Gantt with project Gantt avec le projet
89 Gantt with user Gantt avec l'utilisateur
90 Gen proj type per order line Type d'élément généré par ligne de commande
91 Generate quotation Générer un devis
92 Generate sequence for project Générer une séquence pour les projets
93 Generated project Projet généré
94 High
95 Historical
96 Image
97 Import all members Importer tous les membres
98 Imputable
99 In Progress En Cours
100 Internal Description Description interne
101 Invoiced
102 Invoices Factures
103 Invoicing Facturation
104 Is close
105 Is open
106 Is unique task for multiple quantity Est une tâche unique pour plusieurs quantité
107 Log Times Temps passés
108 Low
109 Manage lines Gérer les lignes
110 Members Membres
111 Membres Membres
112 My projects Mes projets
113 My tasks due Mes tâches en retard
114 My tasks to do Mes tâches en cours
115 My today planning Mon planning du jour
116 My upcoming planning Mon planning à venir
117 Name Nom
118 New Nouveau
119 New line Nouvelle ligne
120 New task Nouvelle tâche
121 New ticket Nouveau ticket
122 Normal
123 Not invoiced
124 Not specified Non spécifié
125 Notes
126 Open gantt
127 Open phase Ouvrir la phase
128 Open task Ouvrir tâche
129 Order Accepted Devis accepté
130 Order Proposed Devis proposé
131 Order by state Trier par statut
132 Package Forfait
133 Parent project Projet parent
134 Parent task Tâche parent
135 Person In Charge Responsable
136 Phase by line Phase par ligne
137 Phase tasks
138 Phases
139 Plan project Planifier des temps
140 Planification and costs Planification et coûts
141 Planned Time Planning
142 Planned charge
143 Planned progress Avancement planifié
144 Planning Planification
145 Please select project Veuillez sélectionner un projet
146 Please select user Veuillez sélectionner un utilisateur
147 Predecessors tasks Tâches précédentes
148 Product Produit
149 Production
150 Progress Progression
151 Progress (%) Progression(%)
152 Project Projet
153 Project Calendar Calendrier projet
154 Project Folder Dossier
155 Project Folders Dossiers du projet
156 Project Gantt Projet Gantt
157 Project Label Libellé projet
158 Project Phase Phase projet
159 Project Task Tâche
160 Project Task Tree Arborescence des tâches
161 Project Tasks Tâches
162 Project Wiki Wiki des projets
163 Project alone Projet seul
164 Project phase Phase de projet
165 Project phases Phases de projet
166 Project planning Planning projet
167 Project set Projets
168 Project template Modèle de projet
169 Project type select Type de projet
170 Project.toInvoice Facturer
171 Project/Business (Project)
172 Project/Phase Projet/Phase
173 Projects Projets
174 Projects Financial Report
175 Projects Folder Dossier de projets
176 Projects Planification and costs
177 Purchase order lines Lignes de commandes d'achat
178 Purchases
179 Quantity Quantité
180 Related Projects Projets rattachés
181 Related tasks
182 Remove lines Retirer des lignes
183 Remove selected lines Retirer les lignes sélectionnées
184 Reportings
185 Reports
186 Reset to New Repasser à nouveau
187 Resource
188 Resource booking Réservation ressources
189 Resource bookings Réservation ressources
190 Resource management Management des ressources
191 Resource type Type de ressources
192 Resource types Types de ressources
193 Resources
194 Roadmap
195 Sale order lines Lignes de commande
196 Sales
197 Select Projects Projets
198 Select Users Utilisateurs
199 Select lines to remove
200 Select new lines Ajouter des lignes
201 Sequence Séquence
202 Serial/batch number
203 Show expense lines Voir les lignes de note de frais
204 Show phases elements Voir les éléments de phase
205 Show production orders Voir les ordres de production
206 Show purchase order lines Voir les lignes d'achat
207 Show sale order lines Voir les lignes de commande 
208 Signature
209 Start Démarrer
210 Start tasks to finish
211 Start tasks to start
212 Status Statut
213 Stop Arrêter
214 Subject
215 Supplier Invoice lines Lignes de factures fournisseur
216 Supplier contracts Contrats fournisseurs
217 Synchronize Synchroniser
218 Take charge Prendre en charge
219 Task Tâche
220 Task Invoicing Facturation des tâches
221 Task Tree Arborescence des tâches
222 Task assigned to Tâche Assignée à
223 Task assigned to the client Tâche assignée au client
224 Task assigned to the provider Tâche Assignée au prestataire
225 Task by line Tâche par ligne
226 Task date Date
227 Task deadline Date limite
228 Task end Fin de tâche
229 Task history Historique des tâches
230 Task template Modèle de tâche
231 Task template list Liste de modèle de tâche
232 Task templates Modèles de tâches
233 Task updated Tâche mise à jour
234 Tasks Tâches
235 Tasks to finish before finish
236 Tasks to start before start
237 Team Équipe
238 Team Task Category
239 Team task list List des tâches
240 Template Modèle
241 The company %s doesn't have any configured sequence for Project La société %s n'a pas de séquence configurer pour les projets
242 The deep limit of the project is too high La limite de ce project est trop élevée
243 The selected project/task doesn't contain any customers Le projet/tâche sélectionné(e) ne contient pas de client
244 Ticket
245 Tickets Les Tickets
246 Time Spent Temps passés
247 Timer Chronomètre
248 Timer list Liste de chronomètre
249 Title Titre
250 To Date A
251 To Invoice A facturer
252 To date
253 Tools
254 Total duration (Hours) Durée total (Heures)
255 Total planned hours Temps total planifié
256 Tree view Arborescence des tâches
257 Type
258 Type of authorized activities Type d’activités autorisées
259 Type of authorized categories Type de catégories autorisées
260 Unit
261 Unit price
262 Unlink selected lines Délier les lignes selectionnées
263 Update period according to task Mettre à jour la période par rapport à la tâche
264 Urgent
265 User
266 User Gantt Gantt utilisateur
267 User Task Tâche utilisateur
268 Users
269 Validated Timesheet lines Lignes de feuilles de temps validées
270 Waiting Timesheet lines Lignes de feuilles de temps en attente
271 Wiki
272 You have no active team, the planning can't be generated Vous n'avez pas d'équipe active, le planning ne sera pas généré
273 You have no projects or tasks bound to you, your planning can't be generated. Vous n'êtes sur aucun projet ou aucune tâche, votre planning ne sera pas généré
274 You have selected no team for this project Vous n'avez sélectionné aucune équipe pour ce projet.
275 Your team has no projects or tasks bound to it, the planning can't be generated. Votre équipe n'est sur aucun projet ou aucune tâche, votre planning ne sera pas généré.
276 hours
277 project-Resources

View File

@ -0,0 +1,268 @@
"key","message","comment","context"
"%s project","%s progetto",,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>","<span class='label-info'>Conta automaticamente se lasciato vuoto</span>.",,
"Accept Order",,,
"Actions","Azioni",,
"Add multiple lines","Aggiungere più righe",,
"Add selected lines","Aggiungi linee selezionate",,
"All phase tasks","Tutti i compiti di fase",,
"All phases","Tutte le fasi",,
"All tasks","Tutti i compiti",,
"Analytic",,,
"Announcement",,,
"App project","Progetto App",,
"Assigned to","Assegnato a",,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource","Prenota risorsa",,
"Budgeted time",,,
"Business","Affari",,
"Business project","Progetto imprenditoriale",,
"Cancel","Annulla",,
"Canceled","Annullato",,
"Category","Categoria",,
"Characteristics","Caratteristiche",,
"Child Projects","Progetti per bambini",,
"Code","Codice",,
"Company","L'azienda",,
"Configuration","Configurazione",,
"Configurations","Configurazioni",,
"Content","Contenuto",,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project","Crea progetto di fatturazione",,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency","Valuta",,
"Customer","Cliente",,
"Customer Contact","Contatto con il cliente",,
"Customer Invoice lines","Linee di fatturazione clienti",,
"Customer contracts",,,
"Dates","Le date",,
"Deadline","Scadenza",,
"Deadline Today","Scadenza Oggi",,
"Deadline Tomorrow","Scadenza Domani",,
"Deadline Yesterday","Scadenza Ieri",,
"Default status","Stato di default",,
"Delay to start (Hours)","Ritardo alla partenza (ore)",,
"Description","Descrizione",,
"Due Date","Data di scadenza",,
"Duration (Hours)","Durata (ore)",,
"Duration hours","Durata",,
"Enable task signature",,,
"Enter Time spent",,,
"Exclude planning","Escludere la pianificazione",,
"Expense lines","Linee di spesa",,
"Expenses","Spese",,
"Extends members from parent","Estende i membri dei genitori",,
"Financial Data","Dati finanziari",,
"Financial Report","Relazione finanziaria",,
"Finish","Finitura",,
"Finish tasks to finish","Finire i compiti da completare",,
"Finish tasks to start","Terminare i compiti da avviare",,
"Finished","Finito",,
"Follow-up","Seguito",,
"Followers","Seguaci",,
"Frequency",,,
"From Date","Da Data",,
"From date","Dalla data",,
"Gantt","Gantt",,
"Gantt with project","Gantt con progetto",,
"Gantt with user","Gantt con utente",,
"Gen proj type per order line","Gen tipo di progetto per linea d'ordine",,
"Generate quotation","Genera preventivo",,
"Generate sequence for project",,,
"Generated project","Progetto generato",,
"High","Alto",,
"Historical","Storico",,
"Image","Immagine",,
"Import all members","Importa tutti i membri",,
"Imputable","Imputabile",,
"In Progress","In corso",,
"Internal Description",,,
"Invoiced","Fatturato",,
"Invoices",,,
"Invoicing","Fatturazione",,
"Is close","E' vicino",,
"Is open","È aperto",,
"Is unique task for multiple quantity","È compito unico per quantità multiple",,
"Log Times","Tempi di registrazione",,
"Low","Basso",,
"Manage lines","Gestire le linee",,
"Members","Membri",,
"Membres","Membri",,
"My projects","I miei progetti",,
"My tasks due","I miei compiti",,
"My tasks to do","I miei compiti da svolgere",,
"My today planning","La mia pianificazione di oggi",,
"My upcoming planning","La mia prossima pianificazione",,
"Name","Nome",,
"New","Nuovo",,
"New line","Nuova linea",,
"New task",,,
"New ticket",,,
"Normal","Normale",,
"Not invoiced","Non fatturata",,
"Not specified","Non specificato",,
"Notes","Note",,
"Open gantt","Aprire gantt",,
"Open phase","Fase aperta",,
"Open task","Compito aperto",,
"Order Accepted",,,
"Order Proposed",,,
"Order by state","Ordine per stato",,
"Package",,,
"Parent project","Progetto del genitore",,
"Parent task","Compito del genitore",,
"Person In Charge","Persona in carica",,
"Phase by line","Fase per linea",,
"Phase tasks","Compiti di fase",,
"Phases","Fasi",,
"Plan project","Pianificare il progetto",,
"Planification and costs","Pianificazione e costi",,
"Planned Time Planning",,,
"Planned progress","Progressi previsti",,
"Planning","Pianificazione",,
"Please select project","Selezionare il progetto",,
"Please select user","Selezionare l'utente",,
"Predecessors tasks","Compiti precedenti",,
"Product","Prodotto",,
"Production","Produzione",,
"Progress","Progressi",,
"Progress (%)","Progressi (%)",,
"Project","Il progetto",,
"Project Calendar","Calendario del progetto",,
"Project Category","Categoria del progetto",,
"Project Folder","Cartella del progetto",,
"Project Folders","Cartelle di progetto",,
"Project Gantt","Progetto Gantt",,
"Project Label","Etichetta del progetto",,
"Project Phase","Fase del progetto",,
"Project Planning Time Spent",,,
"Project Task","Compito del progetto",,
"Project Task Tree","Albero dei compiti del progetto",,
"Project Tasks","Compiti del progetto",,
"Project Wiki","Progetto Wiki",,
"Project alone","Progetto da solo",,
"Project phase","Fase del progetto",,
"Project phases","Fasi del progetto",,
"Project planning","Pianificazione del progetto",,
"Project set","Set di progetti",,
"Project template",,,
"Project type select","Selezione del tipo di progetto",,
"Project/Business (Project)","Progetto/Business (Progetto)",,
"Project/Phase","Progetto/Fase del progetto",,
"Projects","Progetti",,
"Projects Folder","Cartella Progetti",,
"Purchase order lines","Linee d'ordine d'acquisto",,
"Purchases","Acquisti",,
"Quantity","Quantità",,
"Related Projects","Progetti correlati",,
"Related tasks","Compiti correlati",,
"Remove lines","Rimuovere le linee",,
"Remove selected lines","Rimuovi linee selezionate",,
"Reportings","Rapporti",,
"Reports","Rapporti",,
"Reset to New","Ripristina a Nuovo",,
"Resource","Risorsa",,
"Resource booking","Prenotazione delle risorse",,
"Resource bookings","Prenotazioni di risorse",,
"Resource management","Gestione delle risorse",,
"Resource type","Tipo di risorsa",,
"Resource types","Tipi di risorse",,
"Resources","Risorse",,
"Roadmap",,,
"Sale order lines","Linee d'ordine di vendita",,
"Sales","Vendite",,
"Select Projects","Seleziona i progetti",,
"Select Users","Seleziona Utenti",,
"Select lines to remove",,,
"Select new lines","Seleziona nuove linee",,
"Sequence","Sequenza",,
"Serial/batch number","Numero di serie/numero di lotto",,
"Show expense lines","Mostra linee di spesa",,
"Show phases elements","Mostra gli elementi delle fasi",,
"Show production orders","Mostra ordini di produzione",,
"Show purchase order lines","Mostra linee d'ordine d'acquisto",,
"Show sale order lines","Mostra linee d'ordine di vendita",,
"Signature",,,
"Start","Inizio",,
"Start tasks to finish","Compiti dall'inizio alla fine",,
"Start tasks to start","Avviare le attività da avviare",,
"Status","Stato",,
"Stop","Fermo",,
"Subject","Oggetto",,
"Supplier Invoice lines","Linee di fatturazione dei fornitori",,
"Supplier contracts",,,
"Synchronize","Sincronizzare",,
"Take charge","Prendere in carico",,
"Task","Compito",,
"Task Invoicing","Compito Fatturazione",,
"Task Tree","Albero dei compiti",,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line","Compito per linea",,
"Task date","Data del compito",,
"Task deadline","Scadenza del compito",,
"Task end","Fine compito",,
"Task history","Cronologia delle attività",,
"Task template",,,
"Task template list","Elenco dei modelli di attività",,
"Task templates",,,
"Task updated","Aggiornato il compito",,
"Tasks","Compiti",,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team","Squadra",,
"Team task list","Elenco delle attività di squadra",,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high","Il limite profondo del progetto è troppo alto",,
"The selected project/task doesn't contain any customers","Il progetto/attività selezionata non contiene clienti",,
"Ticket",,,
"Tickets",,,
"Time Spent","Tempo trascorso",,
"Timer","Timer",,
"Timer list","Elenco dei timer",,
"Title","Titolo",,
"To Date","Fino ad oggi",,
"To Invoice","Alla Fattura",,
"To date","Ad oggi",,
"Tools","Strumenti",,
"Total duration (Hours)","Durata totale (ore)",,
"Total planned hours","Totale ore pianificate",,
"Tree view","Vista sull'albero",,
"Type","Tipo",,
"Type of authorized activities","Tipo di attività autorizzate",,
"Type of authorized categories","Tipo di categorie autorizzate",,
"Unit","Unità",,
"Unit price","Prezzo unitario",,
"Unlink selected lines","Scollegamento delle linee selezionate",,
"Update period according to task","Periodo di aggiornamento secondo il compito",,
"Urgent","Urgente",,
"User","Utente",,
"User Gantt","Gantt utente",,
"User Task","Attività dell'utente",,
"Users","Utenti",,
"Validated Timesheet lines","Linee dei fogli di lavoro convalidate",,
"Waiting Timesheet lines","Linee dei fogli di attesa",,
"Wiki","Wiki",,
"You have no active team, the planning can't be generated","Non hai un team attivo, la pianificazione non può essere generata.",,
"You have no projects or tasks bound to you, your planning can't be generated.","Non hai progetti o compiti legati a te, la tua pianificazione non puo' essere generata.",,
"You have selected no team for this project","Non hai selezionato nessun team per questo progetto",,
"Your team has no projects or tasks bound to it, the planning can't be generated.","Il tuo team non ha progetti o compiti ad esso legati, la pianificazione non può essere generata.",,
"hours","orario",,
"project-Resources","progetto-Risorse",,
1 key message comment context
2 %s project %s progetto
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span> <span class='label-info'>Conta automaticamente se lasciato vuoto</span>.
15 Accept Order
16 Actions Azioni
17 Add multiple lines Aggiungere più righe
18 Add selected lines Aggiungi linee selezionate
19 All phase tasks Tutti i compiti di fase
20 All phases Tutte le fasi
21 All tasks Tutti i compiti
22 Analytic
23 Announcement
24 App project Progetto App
25 Assigned to Assegnato a
26 Assigning to the customer
27 Assigning to the provider
28 Book resource Prenota risorsa
29 Budgeted time
30 Business Affari
31 Business project Progetto imprenditoriale
32 Cancel Annulla
33 Canceled Annullato
34 Category Categoria
35 Characteristics Caratteristiche
36 Child Projects Progetti per bambini
37 Code Codice
38 Company L'azienda
39 Configuration Configurazione
40 Configurations Configurazioni
41 Content Contenuto
42 Contracts
43 Create business project from this template
44 Create invoicing project Crea progetto di fatturazione
45 Create new customer contract
46 Create new supplier contract
47 Create project from this template
48 Currency Valuta
49 Customer Cliente
50 Customer Contact Contatto con il cliente
51 Customer Invoice lines Linee di fatturazione clienti
52 Customer contracts
53 Dates Le date
54 Deadline Scadenza
55 Deadline Today Scadenza Oggi
56 Deadline Tomorrow Scadenza Domani
57 Deadline Yesterday Scadenza Ieri
58 Default status Stato di default
59 Delay to start (Hours) Ritardo alla partenza (ore)
60 Description Descrizione
61 Due Date Data di scadenza
62 Duration (Hours) Durata (ore)
63 Duration hours Durata
64 Enable task signature
65 Enter Time spent
66 Exclude planning Escludere la pianificazione
67 Expense lines Linee di spesa
68 Expenses Spese
69 Extends members from parent Estende i membri dei genitori
70 Financial Data Dati finanziari
71 Financial Report Relazione finanziaria
72 Finish Finitura
73 Finish tasks to finish Finire i compiti da completare
74 Finish tasks to start Terminare i compiti da avviare
75 Finished Finito
76 Follow-up Seguito
77 Followers Seguaci
78 Frequency
79 From Date Da Data
80 From date Dalla data
81 Gantt Gantt
82 Gantt with project Gantt con progetto
83 Gantt with user Gantt con utente
84 Gen proj type per order line Gen tipo di progetto per linea d'ordine
85 Generate quotation Genera preventivo
86 Generate sequence for project
87 Generated project Progetto generato
88 High Alto
89 Historical Storico
90 Image Immagine
91 Import all members Importa tutti i membri
92 Imputable Imputabile
93 In Progress In corso
94 Internal Description
95 Invoiced Fatturato
96 Invoices
97 Invoicing Fatturazione
98 Is close E' vicino
99 Is open È aperto
100 Is unique task for multiple quantity È compito unico per quantità multiple
101 Log Times Tempi di registrazione
102 Low Basso
103 Manage lines Gestire le linee
104 Members Membri
105 Membres Membri
106 My projects I miei progetti
107 My tasks due I miei compiti
108 My tasks to do I miei compiti da svolgere
109 My today planning La mia pianificazione di oggi
110 My upcoming planning La mia prossima pianificazione
111 Name Nome
112 New Nuovo
113 New line Nuova linea
114 New task
115 New ticket
116 Normal Normale
117 Not invoiced Non fatturata
118 Not specified Non specificato
119 Notes Note
120 Open gantt Aprire gantt
121 Open phase Fase aperta
122 Open task Compito aperto
123 Order Accepted
124 Order Proposed
125 Order by state Ordine per stato
126 Package
127 Parent project Progetto del genitore
128 Parent task Compito del genitore
129 Person In Charge Persona in carica
130 Phase by line Fase per linea
131 Phase tasks Compiti di fase
132 Phases Fasi
133 Plan project Pianificare il progetto
134 Planification and costs Pianificazione e costi
135 Planned Time Planning
136 Planned progress Progressi previsti
137 Planning Pianificazione
138 Please select project Selezionare il progetto
139 Please select user Selezionare l'utente
140 Predecessors tasks Compiti precedenti
141 Product Prodotto
142 Production Produzione
143 Progress Progressi
144 Progress (%) Progressi (%)
145 Project Il progetto
146 Project Calendar Calendario del progetto
147 Project Category Categoria del progetto
148 Project Folder Cartella del progetto
149 Project Folders Cartelle di progetto
150 Project Gantt Progetto Gantt
151 Project Label Etichetta del progetto
152 Project Phase Fase del progetto
153 Project Planning Time Spent
154 Project Task Compito del progetto
155 Project Task Tree Albero dei compiti del progetto
156 Project Tasks Compiti del progetto
157 Project Wiki Progetto Wiki
158 Project alone Progetto da solo
159 Project phase Fase del progetto
160 Project phases Fasi del progetto
161 Project planning Pianificazione del progetto
162 Project set Set di progetti
163 Project template
164 Project type select Selezione del tipo di progetto
165 Project/Business (Project) Progetto/Business (Progetto)
166 Project/Phase Progetto/Fase del progetto
167 Projects Progetti
168 Projects Folder Cartella Progetti
169 Purchase order lines Linee d'ordine d'acquisto
170 Purchases Acquisti
171 Quantity Quantità
172 Related Projects Progetti correlati
173 Related tasks Compiti correlati
174 Remove lines Rimuovere le linee
175 Remove selected lines Rimuovi linee selezionate
176 Reportings Rapporti
177 Reports Rapporti
178 Reset to New Ripristina a Nuovo
179 Resource Risorsa
180 Resource booking Prenotazione delle risorse
181 Resource bookings Prenotazioni di risorse
182 Resource management Gestione delle risorse
183 Resource type Tipo di risorsa
184 Resource types Tipi di risorse
185 Resources Risorse
186 Roadmap
187 Sale order lines Linee d'ordine di vendita
188 Sales Vendite
189 Select Projects Seleziona i progetti
190 Select Users Seleziona Utenti
191 Select lines to remove
192 Select new lines Seleziona nuove linee
193 Sequence Sequenza
194 Serial/batch number Numero di serie/numero di lotto
195 Show expense lines Mostra linee di spesa
196 Show phases elements Mostra gli elementi delle fasi
197 Show production orders Mostra ordini di produzione
198 Show purchase order lines Mostra linee d'ordine d'acquisto
199 Show sale order lines Mostra linee d'ordine di vendita
200 Signature
201 Start Inizio
202 Start tasks to finish Compiti dall'inizio alla fine
203 Start tasks to start Avviare le attività da avviare
204 Status Stato
205 Stop Fermo
206 Subject Oggetto
207 Supplier Invoice lines Linee di fatturazione dei fornitori
208 Supplier contracts
209 Synchronize Sincronizzare
210 Take charge Prendere in carico
211 Task Compito
212 Task Invoicing Compito Fatturazione
213 Task Tree Albero dei compiti
214 Task assigned to
215 Task assigned to the client
216 Task assigned to the provider
217 Task by line Compito per linea
218 Task date Data del compito
219 Task deadline Scadenza del compito
220 Task end Fine compito
221 Task history Cronologia delle attività
222 Task template
223 Task template list Elenco dei modelli di attività
224 Task templates
225 Task updated Aggiornato il compito
226 Tasks Compiti
227 Tasks to finish before finish
228 Tasks to start before start
229 Team Squadra
230 Team task list Elenco delle attività di squadra
231 Template
232 The company %s doesn't have any configured sequence for Project
233 The deep limit of the project is too high Il limite profondo del progetto è troppo alto
234 The selected project/task doesn't contain any customers Il progetto/attività selezionata non contiene clienti
235 Ticket
236 Tickets
237 Time Spent Tempo trascorso
238 Timer Timer
239 Timer list Elenco dei timer
240 Title Titolo
241 To Date Fino ad oggi
242 To Invoice Alla Fattura
243 To date Ad oggi
244 Tools Strumenti
245 Total duration (Hours) Durata totale (ore)
246 Total planned hours Totale ore pianificate
247 Tree view Vista sull'albero
248 Type Tipo
249 Type of authorized activities Tipo di attività autorizzate
250 Type of authorized categories Tipo di categorie autorizzate
251 Unit Unità
252 Unit price Prezzo unitario
253 Unlink selected lines Scollegamento delle linee selezionate
254 Update period according to task Periodo di aggiornamento secondo il compito
255 Urgent Urgente
256 User Utente
257 User Gantt Gantt utente
258 User Task Attività dell'utente
259 Users Utenti
260 Validated Timesheet lines Linee dei fogli di lavoro convalidate
261 Waiting Timesheet lines Linee dei fogli di attesa
262 Wiki Wiki
263 You have no active team, the planning can't be generated Non hai un team attivo, la pianificazione non può essere generata.
264 You have no projects or tasks bound to you, your planning can't be generated. Non hai progetti o compiti legati a te, la tua pianificazione non puo' essere generata.
265 You have selected no team for this project Non hai selezionato nessun team per questo progetto
266 Your team has no projects or tasks bound to it, the planning can't be generated. Il tuo team non ha progetti o compiti ad esso legati, la pianificazione non può essere generata.
267 hours orario
268 project-Resources progetto-Risorse

View File

@ -0,0 +1,268 @@
"key","message","comment","context"
"%s project","%s project",,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>","<span class='label-label-info'> Automatisch berekend indien leeg gelaten</span>",,
"Accept Order",,,
"Actions","Acties",,
"Add multiple lines","Meerdere regels toevoegen",,
"Add selected lines","Geselecteerde lijnen toevoegen",,
"All phase tasks","Alle fase taken",,
"All phases","Alle fasen",,
"All tasks","Alle taken",,
"Analytic",,,
"Announcement",,,
"App project","App project",,
"Assigned to","Toegewezen aan",,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource","Boek bron",,
"Budgeted time",,,
"Business","Bedrijf",,
"Business project","Bedrijfsproject",,
"Cancel","Annuleren",,
"Canceled","Geannuleerd",,
"Category","Categorie",,
"Characteristics","Kenmerken",,
"Child Projects","Kind Projecten",,
"Code","Code",,
"Company","Bedrijf",,
"Configuration","Configuratie",,
"Configurations","Configuraties",,
"Content","Inhoud",,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project","Factureringsproject aanmaken",,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency","Valuta",,
"Customer","Klant",,
"Customer Contact","Contact met de klant",,
"Customer Invoice lines","Factuurlijnen voor klanten",,
"Customer contracts",,,
"Dates","Data",,
"Deadline","Uiterste datum",,
"Deadline Today","Uiterste datum Vandaag",,
"Deadline Tomorrow","Deadline Morgen",,
"Deadline Yesterday","Deadline Gisteren",,
"Default status","Standaard status",,
"Delay to start (Hours)","Vertraging om te beginnen (uren)",,
"Description","Beschrijving",,
"Due Date","Vervaldatum",,
"Duration (Hours)","Duur (uren)",,
"Duration hours","Duur uren",,
"Enable task signature",,,
"Enter Time spent",,,
"Exclude planning","Planning uitsluiten",,
"Expense lines","Uitgavenlijnen",,
"Expenses","Uitgaven",,
"Extends members from parent","Breidt de leden van de ouders uit",,
"Financial Data","Financiële gegevens",,
"Financial Report","Financieel verslag",,
"Finish","Afwerking",,
"Finish tasks to finish","Voltooien van taken om af te maken",,
"Finish tasks to start","Voltooien van taken om te beginnen",,
"Finished","Afgewerkt",,
"Follow-up","Follow-up",,
"Followers","Volgelingen",,
"Frequency",,,
"From Date","Vanaf datum",,
"From date","Vanaf datum",,
"Gantt","Gantt",,
"Gantt with project","Gantt met project",,
"Gantt with user","Gantt met gebruiker",,
"Gen proj type per order line","Gen projecttype per orderregel",,
"Generate quotation","Genereer offerte",,
"Generate sequence for project",,,
"Generated project","Gegenereerd project",,
"High","Hoog",,
"Historical","Historisch",,
"Image","Beeld",,
"Import all members","Alle leden importeren",,
"Imputable","Veranderlijk",,
"In Progress","In uitvoering",,
"Internal Description",,,
"Invoiced","Gefactureerd",,
"Invoices",,,
"Invoicing","Facturatie",,
"Is close","Is dichtbij",,
"Is open","Is open",,
"Is unique task for multiple quantity","Is een unieke taak voor meerdere hoeveelheden",,
"Log Times","Logtijden",,
"Low","Laag",,
"Manage lines","Beheer lijnen",,
"Members","Leden",,
"Membres","Membres",,
"My projects","Mijn projecten",,
"My tasks due","Mijn taken",,
"My tasks to do","Mijn taken",,
"My today planning","Mijn planning voor vandaag",,
"My upcoming planning","Mijn aanstaande planning",,
"Name","Naam",,
"New","Nieuw",,
"New line","Nieuwe lijn",,
"New task",,,
"New ticket",,,
"Normal","Normaal",,
"Not invoiced","Niet gefactureerd",,
"Not specified","Niet gespecificeerd",,
"Notes","Opmerkingen",,
"Open gantt","Open gangpad",,
"Open phase","Open fase",,
"Open task","Open taak",,
"Order Accepted",,,
"Order Proposed",,,
"Order by state","Volgorde per staat",,
"Package",,,
"Parent project","Ouderproject",,
"Parent task","Ouderlijke taak",,
"Person In Charge","Verantwoordelijke persoon",,
"Phase by line","Fase voor fase per lijn",,
"Phase tasks","Fase taken",,
"Phases","Fasen",,
"Plan project","Plan project",,
"Planification and costs","Planificatie en kosten",,
"Planned Time Planning",,,
"Planned progress","Geplande vooruitgang",,
"Planning","Planning",,
"Please select project","Selecteer een project",,
"Please select user","Selecteer gebruiker",,
"Predecessors tasks","Taken van de voorgangers",,
"Product","Product",,
"Production","Productie",,
"Progress","Vooruitgang",,
"Progress (%)","Vooruitgang (%)",,
"Project","Project",,
"Project Calendar","Project Kalender",,
"Project Category","Project Categorie",,
"Project Folder","Projectmap",,
"Project Folders","Projectmappen",,
"Project Gantt","Project Gantt",,
"Project Label","Projectetiket",,
"Project Phase","Projectfase",,
"Project Planning Time Spent",,,
"Project Task","Project Taak",,
"Project Task Tree","Project Taak Boom",,
"Project Tasks","Project Taken",,
"Project Wiki","Project Wiki",,
"Project alone","Project alleen",,
"Project phase","Projectfase",,
"Project phases","Projectfasen",,
"Project planning","Projectplanning",,
"Project set","Projectreeks",,
"Project template",,,
"Project type select","Projecttype selecteren",,
"Project/Business (Project)","Project/bedrijf (Project)",,
"Project/Phase","Project/Fase",,
"Projects","Projecten",,
"Projects Folder","Projecten Map",,
"Purchase order lines","Bestellijnen kopen",,
"Purchases","Aankopen",,
"Quantity","Hoeveelheid",,
"Related Projects","Verwante projecten",,
"Related tasks","Gerelateerde taken",,
"Remove lines","Lijnen verwijderen",,
"Remove selected lines","Geselecteerde lijnen verwijderen",,
"Reportings","Meldingen",,
"Reports","Rapporten",,
"Reset to New","Reset naar nieuw",,
"Resource","Hulpbron",,
"Resource booking","Resource boeken",,
"Resource bookings","Resource boekingen",,
"Resource management","Beheer van hulpbronnen",,
"Resource type","Type bron",,
"Resource types","Soorten bronnen",,
"Resources","Hulpmiddelen",,
"Roadmap",,,
"Sale order lines","Verkooporderregels",,
"Sales","Verkoop",,
"Select Projects","Selecteer projecten",,
"Select Users","Selecteer Gebruikers",,
"Select lines to remove",,,
"Select new lines","Selecteer nieuwe lijnen",,
"Sequence","Volgorde",,
"Serial/batch number","Serienummer/batchnummer",,
"Show expense lines","Uitgavenlijnen tonen",,
"Show phases elements","Fase elementen tonen",,
"Show production orders","Toon productieorders",,
"Show purchase order lines","Toon bestelregels",,
"Show sale order lines","Toon verkooporderregels",,
"Signature",,,
"Start","Begin",,
"Start tasks to finish","Taken beginnen om af te ronden",,
"Start tasks to start","Taken starten om te beginnen",,
"Status","Status",,
"Stop","Stoppen",,
"Subject","Onderwerp",,
"Supplier Invoice lines","Factuurlijnen voor leveranciers",,
"Supplier contracts",,,
"Synchronize","Synchroniseren",,
"Take charge","Neem de leiding",,
"Task","Taak",,
"Task Invoicing","Facturering van taken",,
"Task Tree","Taakboom",,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line","Taak per lijn",,
"Task date","Taak datum",,
"Task deadline","Termijn van de taak",,
"Task end","Taakeinde",,
"Task history","Taak geschiedenis",,
"Task template",,,
"Task template list","Taaksjabloonlijst",,
"Task templates",,,
"Task updated","Taak bijgewerkt",,
"Tasks","Taken",,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team","Team",,
"Team task list","Team takenlijst",,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high","De diepe grens van het project is te hoog",,
"The selected project/task doesn't contain any customers","Het geselecteerde project/taak bevat geen klanten",,
"Ticket",,,
"Tickets",,,
"Time Spent","Bestede tijd",,
"Timer","Timer",,
"Timer list","Timer lijst",,
"Title","Titel",,
"To Date","Tot op heden",,
"To Invoice","Naar factuur",,
"To date","Tot op heden",,
"Tools","Gereedschap",,
"Total duration (Hours)","Totale duur (uren)",,
"Total planned hours","Totaal aantal geplande uren",,
"Tree view","Boomaanzicht",,
"Type","Type",,
"Type of authorized activities","Soort geautoriseerde activiteiten",,
"Type of authorized categories","Type geautoriseerde categorieën",,
"Unit","Eenheid",,
"Unit price","Eenheidsprijs",,
"Unlink selected lines","Geselecteerde lijnen ontkoppelen",,
"Update period according to task","Update periode volgens taak",,
"Urgent","Dringend",,
"User","Gebruiker",,
"User Gantt","Gebruiker Gantt",,
"User Task","Gebruikers Taak",,
"Users","Gebruikers",,
"Validated Timesheet lines","Gevalideerde urenregistratielijnen",,
"Waiting Timesheet lines","Wachten Timesheet lijnen",,
"Wiki","Wiki",,
"You have no active team, the planning can't be generated","Je hebt geen actief team, de planning kan niet worden gegenereerd.",,
"You have no projects or tasks bound to you, your planning can't be generated.","U heeft geen projecten of taken aan u gebonden, uw planning kan niet worden gegenereerd.",,
"You have selected no team for this project","U heeft geen team geselecteerd voor dit project",,
"Your team has no projects or tasks bound to it, the planning can't be generated.","Uw team heeft er geen projecten of taken aan verbonden, de planning kan niet worden gegenereerd.",,
"hours","uren",,
"project-Resources","project-bronnen",,
1 key message comment context
2 %s project %s project
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span> <span class='label-label-info'> Automatisch berekend indien leeg gelaten</span>
15 Accept Order
16 Actions Acties
17 Add multiple lines Meerdere regels toevoegen
18 Add selected lines Geselecteerde lijnen toevoegen
19 All phase tasks Alle fase taken
20 All phases Alle fasen
21 All tasks Alle taken
22 Analytic
23 Announcement
24 App project App project
25 Assigned to Toegewezen aan
26 Assigning to the customer
27 Assigning to the provider
28 Book resource Boek bron
29 Budgeted time
30 Business Bedrijf
31 Business project Bedrijfsproject
32 Cancel Annuleren
33 Canceled Geannuleerd
34 Category Categorie
35 Characteristics Kenmerken
36 Child Projects Kind Projecten
37 Code Code
38 Company Bedrijf
39 Configuration Configuratie
40 Configurations Configuraties
41 Content Inhoud
42 Contracts
43 Create business project from this template
44 Create invoicing project Factureringsproject aanmaken
45 Create new customer contract
46 Create new supplier contract
47 Create project from this template
48 Currency Valuta
49 Customer Klant
50 Customer Contact Contact met de klant
51 Customer Invoice lines Factuurlijnen voor klanten
52 Customer contracts
53 Dates Data
54 Deadline Uiterste datum
55 Deadline Today Uiterste datum Vandaag
56 Deadline Tomorrow Deadline Morgen
57 Deadline Yesterday Deadline Gisteren
58 Default status Standaard status
59 Delay to start (Hours) Vertraging om te beginnen (uren)
60 Description Beschrijving
61 Due Date Vervaldatum
62 Duration (Hours) Duur (uren)
63 Duration hours Duur uren
64 Enable task signature
65 Enter Time spent
66 Exclude planning Planning uitsluiten
67 Expense lines Uitgavenlijnen
68 Expenses Uitgaven
69 Extends members from parent Breidt de leden van de ouders uit
70 Financial Data Financiële gegevens
71 Financial Report Financieel verslag
72 Finish Afwerking
73 Finish tasks to finish Voltooien van taken om af te maken
74 Finish tasks to start Voltooien van taken om te beginnen
75 Finished Afgewerkt
76 Follow-up Follow-up
77 Followers Volgelingen
78 Frequency
79 From Date Vanaf datum
80 From date Vanaf datum
81 Gantt Gantt
82 Gantt with project Gantt met project
83 Gantt with user Gantt met gebruiker
84 Gen proj type per order line Gen projecttype per orderregel
85 Generate quotation Genereer offerte
86 Generate sequence for project
87 Generated project Gegenereerd project
88 High Hoog
89 Historical Historisch
90 Image Beeld
91 Import all members Alle leden importeren
92 Imputable Veranderlijk
93 In Progress In uitvoering
94 Internal Description
95 Invoiced Gefactureerd
96 Invoices
97 Invoicing Facturatie
98 Is close Is dichtbij
99 Is open Is open
100 Is unique task for multiple quantity Is een unieke taak voor meerdere hoeveelheden
101 Log Times Logtijden
102 Low Laag
103 Manage lines Beheer lijnen
104 Members Leden
105 Membres Membres
106 My projects Mijn projecten
107 My tasks due Mijn taken
108 My tasks to do Mijn taken
109 My today planning Mijn planning voor vandaag
110 My upcoming planning Mijn aanstaande planning
111 Name Naam
112 New Nieuw
113 New line Nieuwe lijn
114 New task
115 New ticket
116 Normal Normaal
117 Not invoiced Niet gefactureerd
118 Not specified Niet gespecificeerd
119 Notes Opmerkingen
120 Open gantt Open gangpad
121 Open phase Open fase
122 Open task Open taak
123 Order Accepted
124 Order Proposed
125 Order by state Volgorde per staat
126 Package
127 Parent project Ouderproject
128 Parent task Ouderlijke taak
129 Person In Charge Verantwoordelijke persoon
130 Phase by line Fase voor fase per lijn
131 Phase tasks Fase taken
132 Phases Fasen
133 Plan project Plan project
134 Planification and costs Planificatie en kosten
135 Planned Time Planning
136 Planned progress Geplande vooruitgang
137 Planning Planning
138 Please select project Selecteer een project
139 Please select user Selecteer gebruiker
140 Predecessors tasks Taken van de voorgangers
141 Product Product
142 Production Productie
143 Progress Vooruitgang
144 Progress (%) Vooruitgang (%)
145 Project Project
146 Project Calendar Project Kalender
147 Project Category Project Categorie
148 Project Folder Projectmap
149 Project Folders Projectmappen
150 Project Gantt Project Gantt
151 Project Label Projectetiket
152 Project Phase Projectfase
153 Project Planning Time Spent
154 Project Task Project Taak
155 Project Task Tree Project Taak Boom
156 Project Tasks Project Taken
157 Project Wiki Project Wiki
158 Project alone Project alleen
159 Project phase Projectfase
160 Project phases Projectfasen
161 Project planning Projectplanning
162 Project set Projectreeks
163 Project template
164 Project type select Projecttype selecteren
165 Project/Business (Project) Project/bedrijf (Project)
166 Project/Phase Project/Fase
167 Projects Projecten
168 Projects Folder Projecten Map
169 Purchase order lines Bestellijnen kopen
170 Purchases Aankopen
171 Quantity Hoeveelheid
172 Related Projects Verwante projecten
173 Related tasks Gerelateerde taken
174 Remove lines Lijnen verwijderen
175 Remove selected lines Geselecteerde lijnen verwijderen
176 Reportings Meldingen
177 Reports Rapporten
178 Reset to New Reset naar nieuw
179 Resource Hulpbron
180 Resource booking Resource boeken
181 Resource bookings Resource boekingen
182 Resource management Beheer van hulpbronnen
183 Resource type Type bron
184 Resource types Soorten bronnen
185 Resources Hulpmiddelen
186 Roadmap
187 Sale order lines Verkooporderregels
188 Sales Verkoop
189 Select Projects Selecteer projecten
190 Select Users Selecteer Gebruikers
191 Select lines to remove
192 Select new lines Selecteer nieuwe lijnen
193 Sequence Volgorde
194 Serial/batch number Serienummer/batchnummer
195 Show expense lines Uitgavenlijnen tonen
196 Show phases elements Fase elementen tonen
197 Show production orders Toon productieorders
198 Show purchase order lines Toon bestelregels
199 Show sale order lines Toon verkooporderregels
200 Signature
201 Start Begin
202 Start tasks to finish Taken beginnen om af te ronden
203 Start tasks to start Taken starten om te beginnen
204 Status Status
205 Stop Stoppen
206 Subject Onderwerp
207 Supplier Invoice lines Factuurlijnen voor leveranciers
208 Supplier contracts
209 Synchronize Synchroniseren
210 Take charge Neem de leiding
211 Task Taak
212 Task Invoicing Facturering van taken
213 Task Tree Taakboom
214 Task assigned to
215 Task assigned to the client
216 Task assigned to the provider
217 Task by line Taak per lijn
218 Task date Taak datum
219 Task deadline Termijn van de taak
220 Task end Taakeinde
221 Task history Taak geschiedenis
222 Task template
223 Task template list Taaksjabloonlijst
224 Task templates
225 Task updated Taak bijgewerkt
226 Tasks Taken
227 Tasks to finish before finish
228 Tasks to start before start
229 Team Team
230 Team task list Team takenlijst
231 Template
232 The company %s doesn't have any configured sequence for Project
233 The deep limit of the project is too high De diepe grens van het project is te hoog
234 The selected project/task doesn't contain any customers Het geselecteerde project/taak bevat geen klanten
235 Ticket
236 Tickets
237 Time Spent Bestede tijd
238 Timer Timer
239 Timer list Timer lijst
240 Title Titel
241 To Date Tot op heden
242 To Invoice Naar factuur
243 To date Tot op heden
244 Tools Gereedschap
245 Total duration (Hours) Totale duur (uren)
246 Total planned hours Totaal aantal geplande uren
247 Tree view Boomaanzicht
248 Type Type
249 Type of authorized activities Soort geautoriseerde activiteiten
250 Type of authorized categories Type geautoriseerde categorieën
251 Unit Eenheid
252 Unit price Eenheidsprijs
253 Unlink selected lines Geselecteerde lijnen ontkoppelen
254 Update period according to task Update periode volgens taak
255 Urgent Dringend
256 User Gebruiker
257 User Gantt Gebruiker Gantt
258 User Task Gebruikers Taak
259 Users Gebruikers
260 Validated Timesheet lines Gevalideerde urenregistratielijnen
261 Waiting Timesheet lines Wachten Timesheet lijnen
262 Wiki Wiki
263 You have no active team, the planning can't be generated Je hebt geen actief team, de planning kan niet worden gegenereerd.
264 You have no projects or tasks bound to you, your planning can't be generated. U heeft geen projecten of taken aan u gebonden, uw planning kan niet worden gegenereerd.
265 You have selected no team for this project U heeft geen team geselecteerd voor dit project
266 Your team has no projects or tasks bound to it, the planning can't be generated. Uw team heeft er geen projecten of taken aan verbonden, de planning kan niet worden gegenereerd.
267 hours uren
268 project-Resources project-bronnen

View File

@ -0,0 +1,268 @@
"key","message","comment","context"
"%s project","projekt %s",,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>","<span class='label label-info'>Compute automatically if left empty</span>",,
"Accept Order",,,
"Actions","Działania",,
"Add multiple lines","Dodaj wiele wierszy",,
"Add selected lines","Dodaj wybrane linie",,
"All phase tasks","Wszystkie zadania fazowe",,
"All phases","Wszystkie fazy",,
"All tasks","Wszystkie zadania",,
"Analytic",,,
"Announcement",,,
"App project","Projekt aplikacji",,
"Assigned to","Przypisany do",,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource","Zasoby książki",,
"Budgeted time",,,
"Business","Działalność gospodarcza",,
"Business project","Projekt biznesowy",,
"Cancel","Anulowanie",,
"Canceled","Anulowany",,
"Category","Kategoria",,
"Characteristics","Charakterystyka",,
"Child Projects","Projekty na rzecz dzieci",,
"Code","Kod",,
"Company","Firma",,
"Configuration","Konfiguracja",,
"Configurations","Konfiguracje",,
"Content","Zawartość",,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project","Stwórz projekt fakturowania",,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency","Waluta",,
"Customer","Klient",,
"Customer Contact","Kontakt z klientem",,
"Customer Invoice lines","Linie faktur klienta",,
"Customer contracts",,,
"Dates","Daty",,
"Deadline","Ostateczny termin",,
"Deadline Today","Termin dzisiaj",,
"Deadline Tomorrow","Nieprzekraczalny termin Jutro",,
"Deadline Yesterday","Termin wczorajszy",,
"Default status","Status domyślny",,
"Delay to start (Hours)","Opóźnienie rozpoczęcia (godziny)",,
"Description","Opis",,
"Due Date","Termin płatności",,
"Duration (Hours)","Czas trwania (godziny)",,
"Duration hours","Czas trwania pomocy Godziny trwania pomocy",,
"Enable task signature",,,
"Enter Time spent",,,
"Exclude planning","Wyłącz planowanie",,
"Expense lines","Linie wydatków",,
"Expenses","Wydatki",,
"Extends members from parent","Rozszerza członkostwo członków z rodzica",,
"Financial Data","Dane finansowe",,
"Financial Report","Sprawozdanie finansowe",,
"Finish","Finisz",,
"Finish tasks to finish","Zakończyć zadania do końca",,
"Finish tasks to start","Zakończyć zadania do rozpoczęcia",,
"Finished","Gotowe",,
"Follow-up","Działania następcze",,
"Followers","Zwolennicy",,
"Frequency",,,
"From Date","Od daty",,
"From date","Od daty",,
"Gantt","Gantta",,
"Gantt with project","Gantta z projektem",,
"Gantt with user","Gantta z użytkownikiem",,
"Gen proj type per order line","Gen proj type na linię zamówienia",,
"Generate quotation","Generowanie notowań",,
"Generate sequence for project",,,
"Generated project","Projekt wygenerowany",,
"High","Wysoki",,
"Historical","Historyczny",,
"Image","Obrazek",,
"Import all members","Przywóz wszystkich członków",,
"Imputable","Przypisywalny",,
"In Progress","W toku",,
"Internal Description",,,
"Invoiced","Zafakturowany",,
"Invoices",,,
"Invoicing","Fakturowanie",,
"Is close","Jest blisko",,
"Is open","Jest otwarty",,
"Is unique task for multiple quantity","Jest to unikalne zadanie dla wielu ilości",,
"Log Times","Czasy rejestru",,
"Low","Niskie",,
"Manage lines","Zarządzaj liniami",,
"Members","Członkowie",,
"Membres","Membrany",,
"My projects","Moje projekty",,
"My tasks due","Moje zadania do wykonania",,
"My tasks to do","Moje zadania do wykonania",,
"My today planning","Moje dzisiejsze planowanie",,
"My upcoming planning","Moje najbliższe plany",,
"Name","Nazwa",,
"New","Nowy",,
"New line","Nowa linia",,
"New task",,,
"New ticket",,,
"Normal","Normalny",,
"Not invoiced","Nie zafakturowane",,
"Not specified","Nie określono.",,
"Notes","Uwagi",,
"Open gantt","Otwarty przepustnica",,
"Open phase","Faza otwarta",,
"Open task","Otwarte zadanie",,
"Order Accepted",,,
"Order Proposed",,,
"Order by state","Zarządzenie według państwa",,
"Package",,,
"Parent project","Projekt macierzysty",,
"Parent task","Zadanie rodzicielskie",,
"Person In Charge","Osoba odpowiedzialna",,
"Phase by line","Etapy po kolei",,
"Phase tasks","Zadania fazowe",,
"Phases","Fazy",,
"Plan project","Planuj projekt",,
"Planification and costs","Planowanie i koszty",,
"Planned Time Planning",,,
"Planned progress","Planowany postęp",,
"Planning","Planowanie",,
"Please select project","Proszę wybrać projekt",,
"Please select user","Proszę wybrać użytkownika",,
"Predecessors tasks","Zadania poprzedników",,
"Product","Produkt",,
"Production","Produkcja",,
"Progress","Postępy",,
"Progress (%)","Postępy (%)",,
"Project","Projekt",,
"Project Calendar","Kalendarz projektu",,
"Project Category","Kategoria projektu",,
"Project Folder","Folder projektu",,
"Project Folders","Foldery projektów",,
"Project Gantt","Projekt Gantta",,
"Project Label","Etykieta projektu",,
"Project Phase","Faza projektu",,
"Project Planning Time Spent",,,
"Project Task","Zadanie projektu",,
"Project Task Tree","Drzewo zadań projektu",,
"Project Tasks","Zadania projektu",,
"Project Wiki","Projekt Wiki",,
"Project alone","Sam projekt",,
"Project phase","Faza projektu",,
"Project phases","Etapy projektu",,
"Project planning","Planowanie projektu",,
"Project set","Zestaw projektów",,
"Project template",,,
"Project type select","Wybór typu projektu",,
"Project/Business (Project)","Projekt/Biznes (Projekt)",,
"Project/Phase","Projekt/faza",,
"Projects","Projekty",,
"Projects Folder","Folder projektów",,
"Purchase order lines","Linie zamówień zakupu",,
"Purchases","Zakupy",,
"Quantity","Ilość",,
"Related Projects","Projekty powiązane",,
"Related tasks","Zadania powiązane",,
"Remove lines","Usuń linie",,
"Remove selected lines","Usuń wybrane linie",,
"Reportings","Sprawozdania",,
"Reports","Sprawozdania",,
"Reset to New","Przywróćmy do nowego",,
"Resource","Zasoby",,
"Resource booking","Rezerwacja zasobów",,
"Resource bookings","Rezerwacje zasobów",,
"Resource management","Zarządzanie zasobami",,
"Resource type","Rodzaj zasobów",,
"Resource types","Rodzaje zasobów",,
"Resources","Zasoby",,
"Roadmap",,,
"Sale order lines","Linie zamówień sprzedaży",,
"Sales","Sprzedaż",,
"Select Projects","Wybór projektów",,
"Select Users","Wybierz użytkowników",,
"Select lines to remove",,,
"Select new lines","Wybierz nowe linie",,
"Sequence","Kolejność",,
"Serial/batch number","Numer seryjny/numer partii",,
"Show expense lines","Pokaż linie wydatków",,
"Show phases elements","Pokaż elementy fazowe",,
"Show production orders","Pokaż zamówienia produkcyjne",,
"Show purchase order lines","Pokaż linie zamówień zakupu",,
"Show sale order lines","Pokaż linie zamówień sprzedaży",,
"Signature",,,
"Start","Start",,
"Start tasks to finish","Rozpocząć zadania do końca",,
"Start tasks to start","Rozpocząć zadania do rozpoczęcia",,
"Status","Status",,
"Stop","Zatrzymanie",,
"Subject","Przedmiot",,
"Supplier Invoice lines","Linie faktur dostawcy",,
"Supplier contracts",,,
"Synchronize","Synchronizacja",,
"Take charge","Przejmij obowiązki",,
"Task","Zadanie",,
"Task Invoicing","Fakturowanie zadań",,
"Task Tree","Drzewo zadań",,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line","Zadanie według linii",,
"Task date","Data zadania",,
"Task deadline","Termin realizacji zadań",,
"Task end","Zakończenie zadania",,
"Task history","Historia zadań",,
"Task template",,,
"Task template list","Lista szablonów zadań",,
"Task templates",,,
"Task updated","Aktualizacja zadania",,
"Tasks","Zadania",,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team","Zespół",,
"Team task list","Lista zadań zespołu",,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high","Głęboka granica projektu jest zbyt wysoka",,
"The selected project/task doesn't contain any customers","Wybrany projekt/zadanie nie zawiera żadnych klientów",,
"Ticket",,,
"Tickets",,,
"Time Spent","Czas spędzony",,
"Timer","Timer",,
"Timer list","Lista timerów",,
"Title","Tytuł",,
"To Date","Do daty",,
"To Invoice","Do faktury",,
"To date","Do dnia dzisiejszego",,
"Tools","Narzędzia",,
"Total duration (Hours)","Całkowity czas trwania (godziny)",,
"Total planned hours","Planowane godziny ogółem",,
"Tree view","Widok drzewa",,
"Type","Typ",,
"Type of authorized activities","Rodzaj dozwolonej działalności",,
"Type of authorized categories","Typ dozwolonych kategorii",,
"Unit","Jednostka",,
"Unit price","Cena jednostkowa",,
"Unlink selected lines","Połącz wybrane linie",,
"Update period according to task","Okres aktualizacji w zależności od zadania",,
"Urgent","Pilny",,
"User","Użytkownik",,
"User Gantt","Gantta użytkownika",,
"User Task","Zadanie użytkownika",,
"Users","Użytkownicy",,
"Validated Timesheet lines","Zatwierdzone linie arkusza kalkulacyjnego",,
"Waiting Timesheet lines","Oczekiwanie Linie timesheetów",,
"Wiki","Wiki",,
"You have no active team, the planning can't be generated","Nie masz aktywnego zespołu, nie można wygenerować planu.",,
"You have no projects or tasks bound to you, your planning can't be generated.","Nie masz żadnych projektów lub zadań związanych z tobą, twoje planowanie nie może być generowane.",,
"You have selected no team for this project","Nie wybrałeś żadnego zespołu do tego projektu",,
"Your team has no projects or tasks bound to it, the planning can't be generated.","Twój zespół nie ma projektów ani zadań z nim związanych, planowanie nie może być generowane.",,
"hours","godziny",,
"project-Resources","projekty-źródła",,
1 key message comment context
2 %s project projekt %s
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span> <span class='label label-info'>Compute automatically if left empty</span>
15 Accept Order
16 Actions Działania
17 Add multiple lines Dodaj wiele wierszy
18 Add selected lines Dodaj wybrane linie
19 All phase tasks Wszystkie zadania fazowe
20 All phases Wszystkie fazy
21 All tasks Wszystkie zadania
22 Analytic
23 Announcement
24 App project Projekt aplikacji
25 Assigned to Przypisany do
26 Assigning to the customer
27 Assigning to the provider
28 Book resource Zasoby książki
29 Budgeted time
30 Business Działalność gospodarcza
31 Business project Projekt biznesowy
32 Cancel Anulowanie
33 Canceled Anulowany
34 Category Kategoria
35 Characteristics Charakterystyka
36 Child Projects Projekty na rzecz dzieci
37 Code Kod
38 Company Firma
39 Configuration Konfiguracja
40 Configurations Konfiguracje
41 Content Zawartość
42 Contracts
43 Create business project from this template
44 Create invoicing project Stwórz projekt fakturowania
45 Create new customer contract
46 Create new supplier contract
47 Create project from this template
48 Currency Waluta
49 Customer Klient
50 Customer Contact Kontakt z klientem
51 Customer Invoice lines Linie faktur klienta
52 Customer contracts
53 Dates Daty
54 Deadline Ostateczny termin
55 Deadline Today Termin dzisiaj
56 Deadline Tomorrow Nieprzekraczalny termin Jutro
57 Deadline Yesterday Termin wczorajszy
58 Default status Status domyślny
59 Delay to start (Hours) Opóźnienie rozpoczęcia (godziny)
60 Description Opis
61 Due Date Termin płatności
62 Duration (Hours) Czas trwania (godziny)
63 Duration hours Czas trwania pomocy Godziny trwania pomocy
64 Enable task signature
65 Enter Time spent
66 Exclude planning Wyłącz planowanie
67 Expense lines Linie wydatków
68 Expenses Wydatki
69 Extends members from parent Rozszerza członkostwo członków z rodzica
70 Financial Data Dane finansowe
71 Financial Report Sprawozdanie finansowe
72 Finish Finisz
73 Finish tasks to finish Zakończyć zadania do końca
74 Finish tasks to start Zakończyć zadania do rozpoczęcia
75 Finished Gotowe
76 Follow-up Działania następcze
77 Followers Zwolennicy
78 Frequency
79 From Date Od daty
80 From date Od daty
81 Gantt Gantta
82 Gantt with project Gantta z projektem
83 Gantt with user Gantta z użytkownikiem
84 Gen proj type per order line Gen proj type na linię zamówienia
85 Generate quotation Generowanie notowań
86 Generate sequence for project
87 Generated project Projekt wygenerowany
88 High Wysoki
89 Historical Historyczny
90 Image Obrazek
91 Import all members Przywóz wszystkich członków
92 Imputable Przypisywalny
93 In Progress W toku
94 Internal Description
95 Invoiced Zafakturowany
96 Invoices
97 Invoicing Fakturowanie
98 Is close Jest blisko
99 Is open Jest otwarty
100 Is unique task for multiple quantity Jest to unikalne zadanie dla wielu ilości
101 Log Times Czasy rejestru
102 Low Niskie
103 Manage lines Zarządzaj liniami
104 Members Członkowie
105 Membres Membrany
106 My projects Moje projekty
107 My tasks due Moje zadania do wykonania
108 My tasks to do Moje zadania do wykonania
109 My today planning Moje dzisiejsze planowanie
110 My upcoming planning Moje najbliższe plany
111 Name Nazwa
112 New Nowy
113 New line Nowa linia
114 New task
115 New ticket
116 Normal Normalny
117 Not invoiced Nie zafakturowane
118 Not specified Nie określono.
119 Notes Uwagi
120 Open gantt Otwarty przepustnica
121 Open phase Faza otwarta
122 Open task Otwarte zadanie
123 Order Accepted
124 Order Proposed
125 Order by state Zarządzenie według państwa
126 Package
127 Parent project Projekt macierzysty
128 Parent task Zadanie rodzicielskie
129 Person In Charge Osoba odpowiedzialna
130 Phase by line Etapy po kolei
131 Phase tasks Zadania fazowe
132 Phases Fazy
133 Plan project Planuj projekt
134 Planification and costs Planowanie i koszty
135 Planned Time Planning
136 Planned progress Planowany postęp
137 Planning Planowanie
138 Please select project Proszę wybrać projekt
139 Please select user Proszę wybrać użytkownika
140 Predecessors tasks Zadania poprzedników
141 Product Produkt
142 Production Produkcja
143 Progress Postępy
144 Progress (%) Postępy (%)
145 Project Projekt
146 Project Calendar Kalendarz projektu
147 Project Category Kategoria projektu
148 Project Folder Folder projektu
149 Project Folders Foldery projektów
150 Project Gantt Projekt Gantta
151 Project Label Etykieta projektu
152 Project Phase Faza projektu
153 Project Planning Time Spent
154 Project Task Zadanie projektu
155 Project Task Tree Drzewo zadań projektu
156 Project Tasks Zadania projektu
157 Project Wiki Projekt Wiki
158 Project alone Sam projekt
159 Project phase Faza projektu
160 Project phases Etapy projektu
161 Project planning Planowanie projektu
162 Project set Zestaw projektów
163 Project template
164 Project type select Wybór typu projektu
165 Project/Business (Project) Projekt/Biznes (Projekt)
166 Project/Phase Projekt/faza
167 Projects Projekty
168 Projects Folder Folder projektów
169 Purchase order lines Linie zamówień zakupu
170 Purchases Zakupy
171 Quantity Ilość
172 Related Projects Projekty powiązane
173 Related tasks Zadania powiązane
174 Remove lines Usuń linie
175 Remove selected lines Usuń wybrane linie
176 Reportings Sprawozdania
177 Reports Sprawozdania
178 Reset to New Przywróćmy do nowego
179 Resource Zasoby
180 Resource booking Rezerwacja zasobów
181 Resource bookings Rezerwacje zasobów
182 Resource management Zarządzanie zasobami
183 Resource type Rodzaj zasobów
184 Resource types Rodzaje zasobów
185 Resources Zasoby
186 Roadmap
187 Sale order lines Linie zamówień sprzedaży
188 Sales Sprzedaż
189 Select Projects Wybór projektów
190 Select Users Wybierz użytkowników
191 Select lines to remove
192 Select new lines Wybierz nowe linie
193 Sequence Kolejność
194 Serial/batch number Numer seryjny/numer partii
195 Show expense lines Pokaż linie wydatków
196 Show phases elements Pokaż elementy fazowe
197 Show production orders Pokaż zamówienia produkcyjne
198 Show purchase order lines Pokaż linie zamówień zakupu
199 Show sale order lines Pokaż linie zamówień sprzedaży
200 Signature
201 Start Start
202 Start tasks to finish Rozpocząć zadania do końca
203 Start tasks to start Rozpocząć zadania do rozpoczęcia
204 Status Status
205 Stop Zatrzymanie
206 Subject Przedmiot
207 Supplier Invoice lines Linie faktur dostawcy
208 Supplier contracts
209 Synchronize Synchronizacja
210 Take charge Przejmij obowiązki
211 Task Zadanie
212 Task Invoicing Fakturowanie zadań
213 Task Tree Drzewo zadań
214 Task assigned to
215 Task assigned to the client
216 Task assigned to the provider
217 Task by line Zadanie według linii
218 Task date Data zadania
219 Task deadline Termin realizacji zadań
220 Task end Zakończenie zadania
221 Task history Historia zadań
222 Task template
223 Task template list Lista szablonów zadań
224 Task templates
225 Task updated Aktualizacja zadania
226 Tasks Zadania
227 Tasks to finish before finish
228 Tasks to start before start
229 Team Zespół
230 Team task list Lista zadań zespołu
231 Template
232 The company %s doesn't have any configured sequence for Project
233 The deep limit of the project is too high Głęboka granica projektu jest zbyt wysoka
234 The selected project/task doesn't contain any customers Wybrany projekt/zadanie nie zawiera żadnych klientów
235 Ticket
236 Tickets
237 Time Spent Czas spędzony
238 Timer Timer
239 Timer list Lista timerów
240 Title Tytuł
241 To Date Do daty
242 To Invoice Do faktury
243 To date Do dnia dzisiejszego
244 Tools Narzędzia
245 Total duration (Hours) Całkowity czas trwania (godziny)
246 Total planned hours Planowane godziny ogółem
247 Tree view Widok drzewa
248 Type Typ
249 Type of authorized activities Rodzaj dozwolonej działalności
250 Type of authorized categories Typ dozwolonych kategorii
251 Unit Jednostka
252 Unit price Cena jednostkowa
253 Unlink selected lines Połącz wybrane linie
254 Update period according to task Okres aktualizacji w zależności od zadania
255 Urgent Pilny
256 User Użytkownik
257 User Gantt Gantta użytkownika
258 User Task Zadanie użytkownika
259 Users Użytkownicy
260 Validated Timesheet lines Zatwierdzone linie arkusza kalkulacyjnego
261 Waiting Timesheet lines Oczekiwanie Linie timesheetów
262 Wiki Wiki
263 You have no active team, the planning can't be generated Nie masz aktywnego zespołu, nie można wygenerować planu.
264 You have no projects or tasks bound to you, your planning can't be generated. Nie masz żadnych projektów lub zadań związanych z tobą, twoje planowanie nie może być generowane.
265 You have selected no team for this project Nie wybrałeś żadnego zespołu do tego projektu
266 Your team has no projects or tasks bound to it, the planning can't be generated. Twój zespół nie ma projektów ani zadań z nim związanych, planowanie nie może być generowane.
267 hours godziny
268 project-Resources projekty-źródła

View File

@ -0,0 +1,268 @@
"key","message","comment","context"
"%s project","%s projeto",,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>","<span class='label label-info'>Computado automaticamente se deixado vazio</span>",,
"Accept Order",,,
"Actions","Ações",,
"Add multiple lines","Adicionar várias linhas",,
"Add selected lines","Adicionar linhas selecionadas",,
"All phase tasks","Todas as tarefas de fase",,
"All phases","Todas as fases",,
"All tasks","Todas as tarefas",,
"Analytic",,,
"Announcement",,,
"App project","Projeto do aplicativo",,
"Assigned to","Atribuído a",,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource","Recurso de livro",,
"Budgeted time",,,
"Business","Negócios",,
"Business project","Projeto empresarial",,
"Cancel","Cancelar",,
"Canceled","Cancelado",,
"Category","Categoria: Categoria",,
"Characteristics","Características",,
"Child Projects","Projetos infantis",,
"Code","Código",,
"Company","Empresa",,
"Configuration","Configuração",,
"Configurations","Configurações",,
"Content","Conteúdo",,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project","Criar projeto de faturamento",,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency","Moeda",,
"Customer","Cliente",,
"Customer Contact","Contato com o cliente",,
"Customer Invoice lines","Linhas de fatura do cliente",,
"Customer contracts",,,
"Dates","Datas",,
"Deadline","Prazo de entrega",,
"Deadline Today","Prazo de entrega hoje",,
"Deadline Tomorrow","Prazo Final Amanhã",,
"Deadline Yesterday","Data-limite Ontem",,
"Default status","Status padrão",,
"Delay to start (Hours)","Atraso de partida (horas)",,
"Description","Descrição do produto",,
"Due Date","Data de vencimento",,
"Duration (Hours)","Duração (Horas)",,
"Duration hours","Duração horas",,
"Enable task signature",,,
"Enter Time spent",,,
"Exclude planning","Excluir planejamento",,
"Expense lines","Linhas de despesas",,
"Expenses","Despesas",,
"Extends members from parent","Amplia o número de membros dos pais",,
"Financial Data","Dados Financeiros",,
"Financial Report","Relatório financeiro",,
"Finish","Acabamento",,
"Finish tasks to finish","Terminar tarefas para terminar",,
"Finish tasks to start","Terminar tarefas para iniciar",,
"Finished","Acabado",,
"Follow-up","Acompanhamento",,
"Followers","Seguidores",,
"Frequency",,,
"From Date","Data de início",,
"From date","Data de início",,
"Gantt","Gantt",,
"Gantt with project","Gantt com projeto",,
"Gantt with user","Gantt com usuário",,
"Gen proj type per order line","Gerar tipo de projeto por linha de ordem",,
"Generate quotation","Gerar cotação",,
"Generate sequence for project",,,
"Generated project","Projeto gerado",,
"High","Alto",,
"Historical","Histórico",,
"Image","Imagem",,
"Import all members","Importar todos os membros",,
"Imputable","Imputáveis",,
"In Progress","Em andamento",,
"Internal Description",,,
"Invoiced","Faturação",,
"Invoices",,,
"Invoicing","Facturação",,
"Is close","Está perto",,
"Is open","Está aberto",,
"Is unique task for multiple quantity","É uma tarefa única para múltiplas quantidades",,
"Log Times","Tempos de registo",,
"Low","Baixo",,
"Manage lines","Gerir linhas",,
"Members","Membros",,
"Membres","Membranas",,
"My projects","Meus projetos",,
"My tasks due","Minhas tarefas vencidas",,
"My tasks to do","Minhas tarefas para fazer",,
"My today planning","Meu planejamento de hoje",,
"My upcoming planning","Meu planejamento futuro",,
"Name","Nome e Sobrenome",,
"New","Novo",,
"New line","Nova linha",,
"New task",,,
"New ticket",,,
"Normal","Normal",,
"Not invoiced","Não faturado",,
"Not specified","Não especificado",,
"Notes","Notas",,
"Open gantt","Gantt aberto",,
"Open phase","Fase aberta",,
"Open task","Tarefa em aberto",,
"Order Accepted",,,
"Order Proposed",,,
"Order by state","Ordem por estado",,
"Package",,,
"Parent project","Projeto pai",,
"Parent task","Tarefa dos pais",,
"Person In Charge","Pessoa Responsável",,
"Phase by line","Fase por linha",,
"Phase tasks","Tarefas de fase",,
"Phases","Fases",,
"Plan project","Planejar projeto",,
"Planification and costs","Planificação e custos",,
"Planned Time Planning",,,
"Planned progress","Progresso planejado",,
"Planning","Planeamento",,
"Please select project","Por favor, selecione o projeto",,
"Please select user","Por favor, selecione o usuário",,
"Predecessors tasks","Tarefas anteriores",,
"Product","Produto",,
"Production","Produção",,
"Progress","Progresso",,
"Progress (%)","Progresso (%)",,
"Project","Projeto",,
"Project Calendar","Calendário de Projetos",,
"Project Category","Categoria do projeto",,
"Project Folder","Pasta do projeto",,
"Project Folders","Pastas de projetos",,
"Project Gantt","Gantt de projetos",,
"Project Label","Etiqueta do Projeto",,
"Project Phase","Fase de Projecto",,
"Project Planning Time Spent",,,
"Project Task","Tarefa do Projeto",,
"Project Task Tree","Árvore de tarefas do projeto",,
"Project Tasks","Tarefas do projeto",,
"Project Wiki","Projeto Wiki",,
"Project alone","Projeto sozinho",,
"Project phase","Fase de projecto",,
"Project phases","Fases do projeto",,
"Project planning","Planejamento de projetos",,
"Project set","Set de projeto",,
"Project template",,,
"Project type select","Tipo de projeto marcar",,
"Project/Business (Project)","Projeto/Negócio (Projeto)",,
"Project/Phase","Projeto/Fase",,
"Projects","Projetos",,
"Projects Folder","Pasta de Projetos",,
"Purchase order lines","Linhas de pedido de compra",,
"Purchases","Compras",,
"Quantity","Quantidade",,
"Related Projects","Projetos Relacionados",,
"Related tasks","Tarefas relacionadas",,
"Remove lines","Remover linhas",,
"Remove selected lines","Remover linhas selecionadas",,
"Reportings","Relatórios",,
"Reports","Relatórios",,
"Reset to New","Redefinir para Novo",,
"Resource","Recurso",,
"Resource booking","Atribuição de recursos",,
"Resource bookings","Reservas de recursos",,
"Resource management","Gestão de recursos",,
"Resource type","Tipo de recurso",,
"Resource types","Tipos de recurso",,
"Resources","Recursos",,
"Roadmap",,,
"Sale order lines","Linhas de ordens de venda",,
"Sales","Vendas",,
"Select Projects","Selecionar projetos",,
"Select Users","Selecione Usuários",,
"Select lines to remove",,,
"Select new lines","Selecionar novas linhas",,
"Sequence","Seqüência",,
"Serial/batch number","Número de série/de lote",,
"Show expense lines","Mostrar linhas de despesas",,
"Show phases elements","Mostrar elementos das fases",,
"Show production orders","Mostrar ordens de produção",,
"Show purchase order lines","Mostrar linhas de pedido de compra",,
"Show sale order lines","Mostrar linhas de ordem de venda",,
"Signature",,,
"Start","Início",,
"Start tasks to finish","Iniciar tarefas para terminar",,
"Start tasks to start","Iniciar tarefas para iniciar",,
"Status","Estado",,
"Stop","Parar",,
"Subject","Assunto",,
"Supplier Invoice lines","Linhas de fatura do fornecedor",,
"Supplier contracts",,,
"Synchronize","Sincronizar",,
"Take charge","Assumir o comando",,
"Task","Tarefa",,
"Task Invoicing","Tarefa Faturamento",,
"Task Tree","Árvore de tarefas",,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line","Tarefa por linha",,
"Task date","Data da tarefa",,
"Task deadline","Prazo da tarefa",,
"Task end","Fim da tarefa",,
"Task history","Histórico de tarefas",,
"Task template",,,
"Task template list","Lista de modelos de tarefas",,
"Task templates",,,
"Task updated","Tarefa atualizada",,
"Tasks","Tarefas",,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team","Equipe",,
"Team task list","Lista de tarefas da equipe",,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high","O limite profundo do projeto é muito alto",,
"The selected project/task doesn't contain any customers","O projeto/tarefa selecionado não contém nenhum cliente",,
"Ticket",,,
"Tickets",,,
"Time Spent","Tempo gasto",,
"Timer","Temporizador",,
"Timer list","Lista de Temporizadores",,
"Title","Título",,
"To Date","Até à data",,
"To Invoice","Para fatura",,
"To date","Até à data",,
"Tools","Ferramentas",,
"Total duration (Hours)","Duração total (horas)",,
"Total planned hours","Total de horas teóricas",,
"Tree view","Vista em árvore",,
"Type","Tipo de",,
"Type of authorized activities","Tipo de actividades autorizadas",,
"Type of authorized categories","Tipo de categorias autorizadas",,
"Unit","Unidade",,
"Unit price","Preço unitário",,
"Unlink selected lines","Desvinculação de linhas selecionadas",,
"Update period according to task","Período de atualização de acordo com a tarefa",,
"Urgent","Urgente",,
"User","Usuário",,
"User Gantt","Gantt do usuário",,
"User Task","Tarefa do usuário",,
"Users","Usuários",,
"Validated Timesheet lines","Linhas da folha de tempos validadas",,
"Waiting Timesheet lines","Linhas da folha de tempos de espera",,
"Wiki","Wiki",,
"You have no active team, the planning can't be generated","Você não tem nenhuma equipe ativa, o planejamento não pode ser gerado",,
"You have no projects or tasks bound to you, your planning can't be generated.","Não tens projectos ou tarefas ligadas a ti, o teu planeamento não pode ser gerado.",,
"You have selected no team for this project","Você não selecionou nenhuma equipe para este projeto",,
"Your team has no projects or tasks bound to it, the planning can't be generated.","A sua equipa não tem projectos ou tarefas ligadas a ela, o planeamento não pode ser gerado.",,
"hours","horas",,
"project-Resources","projeto-Recursos",,
1 key message comment context
2 %s project %s projeto
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span> <span class='label label-info'>Computado automaticamente se deixado vazio</span>
15 Accept Order
16 Actions Ações
17 Add multiple lines Adicionar várias linhas
18 Add selected lines Adicionar linhas selecionadas
19 All phase tasks Todas as tarefas de fase
20 All phases Todas as fases
21 All tasks Todas as tarefas
22 Analytic
23 Announcement
24 App project Projeto do aplicativo
25 Assigned to Atribuído a
26 Assigning to the customer
27 Assigning to the provider
28 Book resource Recurso de livro
29 Budgeted time
30 Business Negócios
31 Business project Projeto empresarial
32 Cancel Cancelar
33 Canceled Cancelado
34 Category Categoria: Categoria
35 Characteristics Características
36 Child Projects Projetos infantis
37 Code Código
38 Company Empresa
39 Configuration Configuração
40 Configurations Configurações
41 Content Conteúdo
42 Contracts
43 Create business project from this template
44 Create invoicing project Criar projeto de faturamento
45 Create new customer contract
46 Create new supplier contract
47 Create project from this template
48 Currency Moeda
49 Customer Cliente
50 Customer Contact Contato com o cliente
51 Customer Invoice lines Linhas de fatura do cliente
52 Customer contracts
53 Dates Datas
54 Deadline Prazo de entrega
55 Deadline Today Prazo de entrega hoje
56 Deadline Tomorrow Prazo Final Amanhã
57 Deadline Yesterday Data-limite Ontem
58 Default status Status padrão
59 Delay to start (Hours) Atraso de partida (horas)
60 Description Descrição do produto
61 Due Date Data de vencimento
62 Duration (Hours) Duração (Horas)
63 Duration hours Duração horas
64 Enable task signature
65 Enter Time spent
66 Exclude planning Excluir planejamento
67 Expense lines Linhas de despesas
68 Expenses Despesas
69 Extends members from parent Amplia o número de membros dos pais
70 Financial Data Dados Financeiros
71 Financial Report Relatório financeiro
72 Finish Acabamento
73 Finish tasks to finish Terminar tarefas para terminar
74 Finish tasks to start Terminar tarefas para iniciar
75 Finished Acabado
76 Follow-up Acompanhamento
77 Followers Seguidores
78 Frequency
79 From Date Data de início
80 From date Data de início
81 Gantt Gantt
82 Gantt with project Gantt com projeto
83 Gantt with user Gantt com usuário
84 Gen proj type per order line Gerar tipo de projeto por linha de ordem
85 Generate quotation Gerar cotação
86 Generate sequence for project
87 Generated project Projeto gerado
88 High Alto
89 Historical Histórico
90 Image Imagem
91 Import all members Importar todos os membros
92 Imputable Imputáveis
93 In Progress Em andamento
94 Internal Description
95 Invoiced Faturação
96 Invoices
97 Invoicing Facturação
98 Is close Está perto
99 Is open Está aberto
100 Is unique task for multiple quantity É uma tarefa única para múltiplas quantidades
101 Log Times Tempos de registo
102 Low Baixo
103 Manage lines Gerir linhas
104 Members Membros
105 Membres Membranas
106 My projects Meus projetos
107 My tasks due Minhas tarefas vencidas
108 My tasks to do Minhas tarefas para fazer
109 My today planning Meu planejamento de hoje
110 My upcoming planning Meu planejamento futuro
111 Name Nome e Sobrenome
112 New Novo
113 New line Nova linha
114 New task
115 New ticket
116 Normal Normal
117 Not invoiced Não faturado
118 Not specified Não especificado
119 Notes Notas
120 Open gantt Gantt aberto
121 Open phase Fase aberta
122 Open task Tarefa em aberto
123 Order Accepted
124 Order Proposed
125 Order by state Ordem por estado
126 Package
127 Parent project Projeto pai
128 Parent task Tarefa dos pais
129 Person In Charge Pessoa Responsável
130 Phase by line Fase por linha
131 Phase tasks Tarefas de fase
132 Phases Fases
133 Plan project Planejar projeto
134 Planification and costs Planificação e custos
135 Planned Time Planning
136 Planned progress Progresso planejado
137 Planning Planeamento
138 Please select project Por favor, selecione o projeto
139 Please select user Por favor, selecione o usuário
140 Predecessors tasks Tarefas anteriores
141 Product Produto
142 Production Produção
143 Progress Progresso
144 Progress (%) Progresso (%)
145 Project Projeto
146 Project Calendar Calendário de Projetos
147 Project Category Categoria do projeto
148 Project Folder Pasta do projeto
149 Project Folders Pastas de projetos
150 Project Gantt Gantt de projetos
151 Project Label Etiqueta do Projeto
152 Project Phase Fase de Projecto
153 Project Planning Time Spent
154 Project Task Tarefa do Projeto
155 Project Task Tree Árvore de tarefas do projeto
156 Project Tasks Tarefas do projeto
157 Project Wiki Projeto Wiki
158 Project alone Projeto sozinho
159 Project phase Fase de projecto
160 Project phases Fases do projeto
161 Project planning Planejamento de projetos
162 Project set Set de projeto
163 Project template
164 Project type select Tipo de projeto marcar
165 Project/Business (Project) Projeto/Negócio (Projeto)
166 Project/Phase Projeto/Fase
167 Projects Projetos
168 Projects Folder Pasta de Projetos
169 Purchase order lines Linhas de pedido de compra
170 Purchases Compras
171 Quantity Quantidade
172 Related Projects Projetos Relacionados
173 Related tasks Tarefas relacionadas
174 Remove lines Remover linhas
175 Remove selected lines Remover linhas selecionadas
176 Reportings Relatórios
177 Reports Relatórios
178 Reset to New Redefinir para Novo
179 Resource Recurso
180 Resource booking Atribuição de recursos
181 Resource bookings Reservas de recursos
182 Resource management Gestão de recursos
183 Resource type Tipo de recurso
184 Resource types Tipos de recurso
185 Resources Recursos
186 Roadmap
187 Sale order lines Linhas de ordens de venda
188 Sales Vendas
189 Select Projects Selecionar projetos
190 Select Users Selecione Usuários
191 Select lines to remove
192 Select new lines Selecionar novas linhas
193 Sequence Seqüência
194 Serial/batch number Número de série/de lote
195 Show expense lines Mostrar linhas de despesas
196 Show phases elements Mostrar elementos das fases
197 Show production orders Mostrar ordens de produção
198 Show purchase order lines Mostrar linhas de pedido de compra
199 Show sale order lines Mostrar linhas de ordem de venda
200 Signature
201 Start Início
202 Start tasks to finish Iniciar tarefas para terminar
203 Start tasks to start Iniciar tarefas para iniciar
204 Status Estado
205 Stop Parar
206 Subject Assunto
207 Supplier Invoice lines Linhas de fatura do fornecedor
208 Supplier contracts
209 Synchronize Sincronizar
210 Take charge Assumir o comando
211 Task Tarefa
212 Task Invoicing Tarefa Faturamento
213 Task Tree Árvore de tarefas
214 Task assigned to
215 Task assigned to the client
216 Task assigned to the provider
217 Task by line Tarefa por linha
218 Task date Data da tarefa
219 Task deadline Prazo da tarefa
220 Task end Fim da tarefa
221 Task history Histórico de tarefas
222 Task template
223 Task template list Lista de modelos de tarefas
224 Task templates
225 Task updated Tarefa atualizada
226 Tasks Tarefas
227 Tasks to finish before finish
228 Tasks to start before start
229 Team Equipe
230 Team task list Lista de tarefas da equipe
231 Template
232 The company %s doesn't have any configured sequence for Project
233 The deep limit of the project is too high O limite profundo do projeto é muito alto
234 The selected project/task doesn't contain any customers O projeto/tarefa selecionado não contém nenhum cliente
235 Ticket
236 Tickets
237 Time Spent Tempo gasto
238 Timer Temporizador
239 Timer list Lista de Temporizadores
240 Title Título
241 To Date Até à data
242 To Invoice Para fatura
243 To date Até à data
244 Tools Ferramentas
245 Total duration (Hours) Duração total (horas)
246 Total planned hours Total de horas teóricas
247 Tree view Vista em árvore
248 Type Tipo de
249 Type of authorized activities Tipo de actividades autorizadas
250 Type of authorized categories Tipo de categorias autorizadas
251 Unit Unidade
252 Unit price Preço unitário
253 Unlink selected lines Desvinculação de linhas selecionadas
254 Update period according to task Período de atualização de acordo com a tarefa
255 Urgent Urgente
256 User Usuário
257 User Gantt Gantt do usuário
258 User Task Tarefa do usuário
259 Users Usuários
260 Validated Timesheet lines Linhas da folha de tempos validadas
261 Waiting Timesheet lines Linhas da folha de tempos de espera
262 Wiki Wiki
263 You have no active team, the planning can't be generated Você não tem nenhuma equipe ativa, o planejamento não pode ser gerado
264 You have no projects or tasks bound to you, your planning can't be generated. Não tens projectos ou tarefas ligadas a ti, o teu planeamento não pode ser gerado.
265 You have selected no team for this project Você não selecionou nenhuma equipe para este projeto
266 Your team has no projects or tasks bound to it, the planning can't be generated. A sua equipa não tem projectos ou tarefas ligadas a ela, o planeamento não pode ser gerado.
267 hours horas
268 project-Resources projeto-Recursos

View File

@ -0,0 +1,268 @@
"key","message","comment","context"
"%s project","проект %s",,
"0 %",,,
"10 %",,,
"100 %",,,
"20 %",,,
"30 %",,,
"40 %",,,
"50 %",,,
"60 %",,,
"70 %",,,
"80 %",,,
"90 %",,,
"<span class='label label-info'>Computed automatically if left empty</span>","<span class='label-info'>Считается автоматически, если оставить пустым</span>.",,
"Accept Order",,,
"Actions","Действия",,
"Add multiple lines","Добавить несколько строк",,
"Add selected lines","Добавить выбранные строки",,
"All phase tasks","Все фазовые задачи",,
"All phases","Все фазы",,
"All tasks","Все задачи",,
"Analytic",,,
"Announcement",,,
"App project","Проект приложений",,
"Assigned to","Назначенный",,
"Assigning to the customer",,,
"Assigning to the provider",,,
"Book resource","Бронировочный ресурс",,
"Budgeted time",,,
"Business","Бизнес",,
"Business project","Бизнес-проект",,
"Cancel","Отмена",,
"Canceled","Отмена",,
"Category","Категория",,
"Characteristics","Характеристики",,
"Child Projects","Детские проекты",,
"Code","Код",,
"Company","Компания",,
"Configuration","Конфигурация",,
"Configurations","Конфигурации",,
"Content","Содержание",,
"Contracts",,,
"Create business project from this template",,,
"Create invoicing project","Создать проект выставления счетов",,
"Create new customer contract",,,
"Create new supplier contract",,,
"Create project from this template",,,
"Currency","Валюта",,
"Customer","Клиент",,
"Customer Contact","Контакт с клиентом",,
"Customer Invoice lines","Счета-фактуры клиентов",,
"Customer contracts",,,
"Dates","Даты",,
"Deadline","Крайний срок",,
"Deadline Today","Крайний срок Сегодня",,
"Deadline Tomorrow","Крайний срок - завтра.",,
"Deadline Yesterday","Крайний срок Вчерашний день",,
"Default status","Статус по умолчанию",,
"Delay to start (Hours)","Задержка начала работы (в часах)",,
"Description","Описание",,
"Due Date","Срок выполнения",,
"Duration (Hours)","Продолжительность (часы)",,
"Duration hours","Продолжительность часов",,
"Enable task signature",,,
"Enter Time spent",,,
"Exclude planning","Исключить планирование",,
"Expense lines","Статьи расходов",,
"Expenses","Расходы",,
"Extends members from parent","Расширяет членство от родителей",,
"Financial Data","Финансовые данные",,
"Financial Report","Финансовый отчет",,
"Finish","Готово",,
"Finish tasks to finish","Закончить задания, чтобы закончить",,
"Finish tasks to start","Завершение заданий для начала работы",,
"Finished","Готово",,
"Follow-up","Последующая деятельность",,
"Followers","Подписчики",,
"Frequency",,,
"From Date","С даты",,
"From date","С даты",,
"Gantt","Гант",,
"Gantt with project","Гантт с проектом",,
"Gantt with user","Гантт с пользователем",,
"Gen proj type per order line","Gen тип проекта в каждой строке заказа",,
"Generate quotation","Сгенерировать котировку",,
"Generate sequence for project",,,
"Generated project","Генерируемый проект",,
"High","Высоко",,
"Historical","Исторический",,
"Image","Изображение",,
"Import all members","Импортировать всех участников",,
"Imputable","Импортируемый",,
"In Progress","В процессе",,
"Internal Description",,,
"Invoiced","Счета",,
"Invoices",,,
"Invoicing","выставление счетов",,
"Is close","близко",,
"Is open","Открыто",,
"Is unique task for multiple quantity","Уникальная задача для многократного количества",,
"Log Times","Время регистрации",,
"Low","Низкий",,
"Manage lines","Управление линиями",,
"Members","Члены",,
"Membres","Мембры",,
"My projects","Мои проекты",,
"My tasks due","Мои задачи",,
"My tasks to do","Мои задачи",,
"My today planning","Мое сегодняшнее планирование",,
"My upcoming planning","Мое предстоящее планирование",,
"Name","Имя",,
"New","Новый",,
"New line","Новая линия",,
"New task",,,
"New ticket",,,
"Normal","Нормальный",,
"Not invoiced","Не выставлен счет",,
"Not specified","Не указано",,
"Notes","Примечания",,
"Open gantt","Открытый бандит",,
"Open phase","Открытая фаза",,
"Open task","Открытое задание",,
"Order Accepted",,,
"Order Proposed",,,
"Order by state","Государственный заказ",,
"Package",,,
"Parent project","Родительский проект",,
"Parent task","Родительская задача",,
"Person In Charge","Ответственное лицо",,
"Phase by line","Постепенно",,
"Phase tasks","поэтапные задачи",,
"Phases","этапы",,
"Plan project","План проекта",,
"Planification and costs","Планирование и затраты",,
"Planned Time Planning",,,
"Planned progress","Запланированный прогресс",,
"Planning","Планирование",,
"Please select project","Пожалуйста, выберите проект",,
"Please select user","Пожалуйста, выберите пользователя",,
"Predecessors tasks","Задачи предшественников",,
"Product","Продукт",,
"Production","Производство",,
"Progress","Прогресс",,
"Progress (%)","Прогресс (%)",,
"Project","Проект",,
"Project Calendar","Календарь проектов",,
"Project Category","Категория проекта",,
"Project Folder","Папка проекта",,
"Project Folders","Папки проектов",,
"Project Gantt","Проект Гант",,
"Project Label","Маркировка проекта",,
"Project Phase","Этап проекта",,
"Project Planning Time Spent",,,
"Project Task","Задача проекта",,
"Project Task Tree","Дерево задач проекта",,
"Project Tasks","Задачи проекта",,
"Project Wiki","Проект Вики",,
"Project alone","Один проект",,
"Project phase","этап проекта",,
"Project phases","Этапы проекта",,
"Project planning","Проектирование",,
"Project set","Набор проектов",,
"Project template",,,
"Project type select","Выбор типа проекта",,
"Project/Business (Project)","Проект/Бизнес (проект)",,
"Project/Phase","Проект/Фазовый этап",,
"Projects","Проекты",,
"Projects Folder","Папка проектов",,
"Purchase order lines","Линии заказов на поставку",,
"Purchases","Покупки",,
"Quantity","Количество",,
"Related Projects","Похожие проекты",,
"Related tasks","Связанные задачи",,
"Remove lines","Снимите линии",,
"Remove selected lines","Удалить выделенные линии",,
"Reportings","Отчеты",,
"Reports","Отчеты",,
"Reset to New","Сброс на новый",,
"Resource","Ресурс",,
"Resource booking","Бронирование ресурсов",,
"Resource bookings","Бронирование ресурсов",,
"Resource management","Управление ресурсами",,
"Resource type","Тип ресурса",,
"Resource types","Типы ресурсов",,
"Resources","Ресурсы",,
"Roadmap",,,
"Sale order lines","Линии заказов на продажу",,
"Sales","Продажи",,
"Select Projects","Выбрать проекты",,
"Select Users","Выберите пользователей",,
"Select lines to remove",,,
"Select new lines","Выберите новые строки",,
"Sequence","Последовательность",,
"Serial/batch number","Серийный номер/номер партии",,
"Show expense lines","Показать статьи расходов",,
"Show phases elements","Показать элементы фаз",,
"Show production orders","Показать производственные заказы",,
"Show purchase order lines","Показать линии заказов на поставку",,
"Show sale order lines","Показать линии заказов на продажу",,
"Signature",,,
"Start","Начать",,
"Start tasks to finish","Запуск заданий для завершения",,
"Start tasks to start","Запуск заданий для запуска",,
"Status","Статус",,
"Stop","Остановись",,
"Subject","Предмет",,
"Supplier Invoice lines","Поставщик Линии счетов-фактур",,
"Supplier contracts",,,
"Synchronize","Синхронизировать",,
"Take charge","Возьмите на себя ответственность",,
"Task","Задача",,
"Task Invoicing","Оформление счетов-фактур",,
"Task Tree","Дерево задач",,
"Task assigned to",,,
"Task assigned to the client",,,
"Task assigned to the provider",,,
"Task by line","Построчно",,
"Task date","Дата задания",,
"Task deadline","Срок выполнения задачи",,
"Task end","Конец задачи",,
"Task history","История задач",,
"Task template",,,
"Task template list","Список шаблонов",,
"Task templates",,,
"Task updated","Обновленная задача",,
"Tasks","Задачи",,
"Tasks to finish before finish",,,
"Tasks to start before start",,,
"Team","Команда",,
"Team task list","Список задач группы",,
"Template",,,
"The company %s doesn't have any configured sequence for Project",,,
"The deep limit of the project is too high","Глубокий предел проекта слишком велик.",,
"The selected project/task doesn't contain any customers","Выбранный проект/задача не содержит клиентов.",,
"Ticket",,,
"Tickets",,,
"Time Spent","Время, потраченное",,
"Timer","Таймер",,
"Timer list","Список таймеров",,
"Title","Название",,
"To Date","На свидание",,
"To Invoice","К счету-фактуре",,
"To date","На сегодняшний день",,
"Tools","Инструменты",,
"Total duration (Hours)","Общая продолжительность (в часах)",,
"Total planned hours","Общее количество запланированных часов",,
"Tree view","Вид на дерево",,
"Type","Тип",,
"Type of authorized activities","Вид разрешенной деятельности",,
"Type of authorized categories","Тип разрешенных категорий",,
"Unit","Подразделение",,
"Unit price","Цена единицы",,
"Unlink selected lines","Разорвать выделенные линии",,
"Update period according to task","Обновить период обновления в соответствии с задачей",,
"Urgent","Срочно",,
"User","Пользователь",,
"User Gantt","Пользователь Гант",,
"User Task","Задача пользователя",,
"Users","Пользователи",,
"Validated Timesheet lines","Проверенные строки табеля учета рабочего времени",,
"Waiting Timesheet lines","Строки табеля ожидания",,
"Wiki","Вики",,
"You have no active team, the planning can't be generated","У вас нет активной команды, планирование не может быть сформировано.",,
"You have no projects or tasks bound to you, your planning can't be generated.","У вас нет привязанных к вам проектов или задач, ваше планирование не может быть сгенерировано.",,
"You have selected no team for this project","Вы не выбрали ни одну команду для этого проекта.",,
"Your team has no projects or tasks bound to it, the planning can't be generated.","У вашей команды нет проектов или задач, связанных с этим, планирование не может быть сформировано.",,
"hours","часы",,
"project-Resources","проект-ресурсы",,
1 key message comment context
2 %s project проект %s
3 0 %
4 10 %
5 100 %
6 20 %
7 30 %
8 40 %
9 50 %
10 60 %
11 70 %
12 80 %
13 90 %
14 <span class='label label-info'>Computed automatically if left empty</span> <span class='label-info'>Считается автоматически, если оставить пустым</span>.
15 Accept Order
16 Actions Действия
17 Add multiple lines Добавить несколько строк
18 Add selected lines Добавить выбранные строки
19 All phase tasks Все фазовые задачи
20 All phases Все фазы
21 All tasks Все задачи
22 Analytic
23 Announcement
24 App project Проект приложений
25 Assigned to Назначенный
26 Assigning to the customer
27 Assigning to the provider
28 Book resource Бронировочный ресурс
29 Budgeted time
30 Business Бизнес
31 Business project Бизнес-проект
32 Cancel Отмена
33 Canceled Отмена
34 Category Категория
35 Characteristics Характеристики
36 Child Projects Детские проекты
37 Code Код
38 Company Компания
39 Configuration Конфигурация
40 Configurations Конфигурации
41 Content Содержание
42 Contracts
43 Create business project from this template
44 Create invoicing project Создать проект выставления счетов
45 Create new customer contract
46 Create new supplier contract
47 Create project from this template
48 Currency Валюта
49 Customer Клиент
50 Customer Contact Контакт с клиентом
51 Customer Invoice lines Счета-фактуры клиентов
52 Customer contracts
53 Dates Даты
54 Deadline Крайний срок
55 Deadline Today Крайний срок Сегодня
56 Deadline Tomorrow Крайний срок - завтра.
57 Deadline Yesterday Крайний срок Вчерашний день
58 Default status Статус по умолчанию
59 Delay to start (Hours) Задержка начала работы (в часах)
60 Description Описание
61 Due Date Срок выполнения
62 Duration (Hours) Продолжительность (часы)
63 Duration hours Продолжительность часов
64 Enable task signature
65 Enter Time spent
66 Exclude planning Исключить планирование
67 Expense lines Статьи расходов
68 Expenses Расходы
69 Extends members from parent Расширяет членство от родителей
70 Financial Data Финансовые данные
71 Financial Report Финансовый отчет
72 Finish Готово
73 Finish tasks to finish Закончить задания, чтобы закончить
74 Finish tasks to start Завершение заданий для начала работы
75 Finished Готово
76 Follow-up Последующая деятельность
77 Followers Подписчики
78 Frequency
79 From Date С даты
80 From date С даты
81 Gantt Гант
82 Gantt with project Гантт с проектом
83 Gantt with user Гантт с пользователем
84 Gen proj type per order line Gen тип проекта в каждой строке заказа
85 Generate quotation Сгенерировать котировку
86 Generate sequence for project
87 Generated project Генерируемый проект
88 High Высоко
89 Historical Исторический
90 Image Изображение
91 Import all members Импортировать всех участников
92 Imputable Импортируемый
93 In Progress В процессе
94 Internal Description
95 Invoiced Счета
96 Invoices
97 Invoicing выставление счетов
98 Is close близко
99 Is open Открыто
100 Is unique task for multiple quantity Уникальная задача для многократного количества
101 Log Times Время регистрации
102 Low Низкий
103 Manage lines Управление линиями
104 Members Члены
105 Membres Мембры
106 My projects Мои проекты
107 My tasks due Мои задачи
108 My tasks to do Мои задачи
109 My today planning Мое сегодняшнее планирование
110 My upcoming planning Мое предстоящее планирование
111 Name Имя
112 New Новый
113 New line Новая линия
114 New task
115 New ticket
116 Normal Нормальный
117 Not invoiced Не выставлен счет
118 Not specified Не указано
119 Notes Примечания
120 Open gantt Открытый бандит
121 Open phase Открытая фаза
122 Open task Открытое задание
123 Order Accepted
124 Order Proposed
125 Order by state Государственный заказ
126 Package
127 Parent project Родительский проект
128 Parent task Родительская задача
129 Person In Charge Ответственное лицо
130 Phase by line Постепенно
131 Phase tasks поэтапные задачи
132 Phases этапы
133 Plan project План проекта
134 Planification and costs Планирование и затраты
135 Planned Time Planning
136 Planned progress Запланированный прогресс
137 Planning Планирование
138 Please select project Пожалуйста, выберите проект
139 Please select user Пожалуйста, выберите пользователя
140 Predecessors tasks Задачи предшественников
141 Product Продукт
142 Production Производство
143 Progress Прогресс
144 Progress (%) Прогресс (%)
145 Project Проект
146 Project Calendar Календарь проектов
147 Project Category Категория проекта
148 Project Folder Папка проекта
149 Project Folders Папки проектов
150 Project Gantt Проект Гант
151 Project Label Маркировка проекта
152 Project Phase Этап проекта
153 Project Planning Time Spent
154 Project Task Задача проекта
155 Project Task Tree Дерево задач проекта
156 Project Tasks Задачи проекта
157 Project Wiki Проект Вики
158 Project alone Один проект
159 Project phase этап проекта
160 Project phases Этапы проекта
161 Project planning Проектирование
162 Project set Набор проектов
163 Project template
164 Project type select Выбор типа проекта
165 Project/Business (Project) Проект/Бизнес (проект)
166 Project/Phase Проект/Фазовый этап
167 Projects Проекты
168 Projects Folder Папка проектов
169 Purchase order lines Линии заказов на поставку
170 Purchases Покупки
171 Quantity Количество
172 Related Projects Похожие проекты
173 Related tasks Связанные задачи
174 Remove lines Снимите линии
175 Remove selected lines Удалить выделенные линии
176 Reportings Отчеты
177 Reports Отчеты
178 Reset to New Сброс на новый
179 Resource Ресурс
180 Resource booking Бронирование ресурсов
181 Resource bookings Бронирование ресурсов
182 Resource management Управление ресурсами
183 Resource type Тип ресурса
184 Resource types Типы ресурсов
185 Resources Ресурсы
186 Roadmap
187 Sale order lines Линии заказов на продажу
188 Sales Продажи
189 Select Projects Выбрать проекты
190 Select Users Выберите пользователей
191 Select lines to remove
192 Select new lines Выберите новые строки
193 Sequence Последовательность
194 Serial/batch number Серийный номер/номер партии
195 Show expense lines Показать статьи расходов
196 Show phases elements Показать элементы фаз
197 Show production orders Показать производственные заказы
198 Show purchase order lines Показать линии заказов на поставку
199 Show sale order lines Показать линии заказов на продажу
200 Signature
201 Start Начать
202 Start tasks to finish Запуск заданий для завершения
203 Start tasks to start Запуск заданий для запуска
204 Status Статус
205 Stop Остановись
206 Subject Предмет
207 Supplier Invoice lines Поставщик Линии счетов-фактур
208 Supplier contracts
209 Synchronize Синхронизировать
210 Take charge Возьмите на себя ответственность
211 Task Задача
212 Task Invoicing Оформление счетов-фактур
213 Task Tree Дерево задач
214 Task assigned to
215 Task assigned to the client
216 Task assigned to the provider
217 Task by line Построчно
218 Task date Дата задания
219 Task deadline Срок выполнения задачи
220 Task end Конец задачи
221 Task history История задач
222 Task template
223 Task template list Список шаблонов
224 Task templates
225 Task updated Обновленная задача
226 Tasks Задачи
227 Tasks to finish before finish
228 Tasks to start before start
229 Team Команда
230 Team task list Список задач группы
231 Template
232 The company %s doesn't have any configured sequence for Project
233 The deep limit of the project is too high Глубокий предел проекта слишком велик.
234 The selected project/task doesn't contain any customers Выбранный проект/задача не содержит клиентов.
235 Ticket
236 Tickets
237 Time Spent Время, потраченное
238 Timer Таймер
239 Timer list Список таймеров
240 Title Название
241 To Date На свидание
242 To Invoice К счету-фактуре
243 To date На сегодняшний день
244 Tools Инструменты
245 Total duration (Hours) Общая продолжительность (в часах)
246 Total planned hours Общее количество запланированных часов
247 Tree view Вид на дерево
248 Type Тип
249 Type of authorized activities Вид разрешенной деятельности
250 Type of authorized categories Тип разрешенных категорий
251 Unit Подразделение
252 Unit price Цена единицы
253 Unlink selected lines Разорвать выделенные линии
254 Update period according to task Обновить период обновления в соответствии с задачей
255 Urgent Срочно
256 User Пользователь
257 User Gantt Пользователь Гант
258 User Task Задача пользователя
259 Users Пользователи
260 Validated Timesheet lines Проверенные строки табеля учета рабочего времени
261 Waiting Timesheet lines Строки табеля ожидания
262 Wiki Вики
263 You have no active team, the planning can't be generated У вас нет активной команды, планирование не может быть сформировано.
264 You have no projects or tasks bound to you, your planning can't be generated. У вас нет привязанных к вам проектов или задач, ваше планирование не может быть сгенерировано.
265 You have selected no team for this project Вы не выбрали ни одну команду для этого проекта.
266 Your team has no projects or tasks bound to it, the planning can't be generated. У вашей команды нет проектов или задач, связанных с этим, планирование не может быть сформировано.
267 hours часы
268 project-Resources проект-ресурсы

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<csv-inputs xmlns="http://axelor.com/xml/ns/data-import"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/data-import http://axelor.com/xml/ns/data-import/data-import_5.2.xsd">
<input file="project_role.csv" separator=";" type="com.axelor.auth.db.Role" search="self.name = :name"/>
<input file="project_permission.csv" separator=";" type="com.axelor.auth.db.Permission" search="self.name = :name" call="com.axelor.csv.script.ImportPermission:importPermissionToRole">
<bind to="canRead" eval="can_read == 'x' ? 'true' : 'false'"/>
<bind to="canWrite" eval="can_write == 'x' ? 'true' : 'false'"/>
<bind to="canCreate" eval="can_create == 'x' ? 'true' : 'false'"/>
<bind to="canRemove" eval="can_remove == 'x' ? 'true' : 'false'"/>
<bind to="canExport" eval="can_export == 'x' ? 'true' : 'false'"/>
</input>
<input file="project_metaMenu.csv" separator=";" type="com.axelor.meta.db.MetaMenu" search="self.name = :name" update="true">
<bind column="roles" to="roles" search="self.name in :roles" eval="roles.split('\\|') as List"/>
</input>
</csv-inputs>

View File

@ -0,0 +1,15 @@
"name";"roles"
"menu-project-root";"Project Manager|Project User|Project Read"
"project-folder";"Project Manager|Project User|Project Read"
"project-all";"Project Manager|Project User|Project Read"
"project-phases";"Project Manager|Project User|Project Read"
"project-tasks";"Project Manager|Project User|Project Read"
"project-open-tasks";"Project Manager|Project User|Project Read"
"project-task-history";"Project Manager|Project User|Project Read"
"project-wiki";"Project Manager|Project User|Project Read"
"project-dasbhoard";"Project Manager|Project User|Project Read"
"project-resource";"Project Manager|Project User|Project Read"
"project-resource-booking";"Project Manager|Project User|Project Read"
"project-configurations";"Project Manager"
"project-category";"Project Manager"
"project-resource-type";"Project Manager"
1 name roles
2 menu-project-root Project Manager|Project User|Project Read
3 project-folder Project Manager|Project User|Project Read
4 project-all Project Manager|Project User|Project Read
5 project-phases Project Manager|Project User|Project Read
6 project-tasks Project Manager|Project User|Project Read
7 project-open-tasks Project Manager|Project User|Project Read
8 project-task-history Project Manager|Project User|Project Read
9 project-wiki Project Manager|Project User|Project Read
10 project-dasbhoard Project Manager|Project User|Project Read
11 project-resource Project Manager|Project User|Project Read
12 project-resource-booking Project Manager|Project User|Project Read
13 project-configurations Project Manager
14 project-category Project Manager
15 project-resource-type Project Manager

View File

@ -0,0 +1,31 @@
"name";"object";"can_read";"can_write";"can_create";"can_remove";"can_export";"condition";"conditionParams";"roleName"
"perm.project.Project.r";"com.axelor.apps.project.db.Project";"x";;;;;"self.company.id in (?)";"__user__.companySet.id.plus(0)";"Project Read"
"perm.project.ProjectPlanning.r";"com.axelor.apps.project.db.ProjectPlanning";"x";;;;;;;"Project Read"
"perm.project.TeamTaskCategory.r";"com.axelor.apps.project.db.TeamTaskCategory";"x";;;;;;;"Project Read"
"perm.project.ResourceType.r";"com.axelor.apps.project.db.ResourceType";"x";;;;;;;"Project Read"
"perm.project.ProjectFolder.r";"com.axelor.apps.project.db.ProjectFolder";"x";;;;;;;"Project Read"
"perm.project.ResourceBooking.r";"com.axelor.apps.project.db.ResourceBooking";"x";;;;;;;"Project Read"
"perm.project.Wiki.r";"com.axelor.apps.project.db.Wiki";"x";;;;;;;"Project Read"
"perm.project.ProjectStatus.r";"com.axelor.apps.project.db.ProjectStatus";"x";;;;;;;"Project Read"
"perm.project.Resource.r";"com.axelor.apps.project.db.Resource";"x";;;;;;;"Project Read"
"perm.project.ProjectPlanningTime.r";"com.axelor.apps.project.db.ProjectPlanningTime";"x";;;;;;;"Project Read"
"perm.project.Project.rwc";"com.axelor.apps.project.db.Project";"x";"x";"x";;;"self.company.id in (?)";"__user__.companySet.id.plus(0)";"Project User"
"perm.project.ProjectPlanning.rwc";"com.axelor.apps.project.db.ProjectPlanning";"x";"x";"x";;;;;"Project User"
"perm.project.TeamTaskCategory.rwc";"com.axelor.apps.project.db.TeamTaskCategory";"x";"x";"x";;;;;"Project User"
"perm.project.ResourceType.rwc";"com.axelor.apps.project.db.ResourceType";"x";"x";"x";;;;;"Project User"
"perm.project.ProjectFolder.rwc";"com.axelor.apps.project.db.ProjectFolder";"x";"x";"x";;;;;"Project User"
"perm.project.ResourceBooking.rwc";"com.axelor.apps.project.db.ResourceBooking";"x";"x";"x";;;;;"Project User"
"perm.project.Wiki.rwc";"com.axelor.apps.project.db.Wiki";"x";"x";"x";;;;;"Project User"
"perm.project.ProjectStatus.rwc";"com.axelor.apps.project.db.ProjectStatus";"x";"x";"x";;;;;"Project User"
"perm.project.Resource.rwc";"com.axelor.apps.project.db.Resource";"x";"x";"x";;;;;"Project User"
"perm.project.ProjectPlanningTime.rwc";"com.axelor.apps.project.db.ProjectPlanningTime";"x";"x";"x";;;;;"Project User"
"perm.project.Project.rwcde";"com.axelor.apps.project.db.Project";"x";"x";"x";"x";"x";"self.company.id in (?)";"__user__.companySet.id.plus(0)";"Project Manager"
"perm.project.ProjectPlanning.rwcde";"com.axelor.apps.project.db.ProjectPlanning";"x";"x";"x";"x";"x";;;"Project Manager"
"perm.project.TeamTaskCategory.rwcde";"com.axelor.apps.project.db.TeamTaskCategory";"x";"x";"x";"x";"x";;;"Project Manager"
"perm.project.ResourceType.rwcde";"com.axelor.apps.project.db.ResourceType";"x";"x";"x";"x";"x";;;"Project Manager"
"perm.project.ProjectFolder.rwcde";"com.axelor.apps.project.db.ProjectFolder";"x";"x";"x";"x";"x";;;"Project Manager"
"perm.project.ResourceBooking.rwcde";"com.axelor.apps.project.db.ResourceBooking";"x";"x";"x";"x";"x";;;"Project Manager"
"perm.project.Wiki.rwcde";"com.axelor.apps.project.db.Wiki";"x";"x";"x";"x";"x";;;"Project Manager"
"perm.project.ProjectStatus.rwcde";"com.axelor.apps.project.db.ProjectStatus";"x";"x";"x";"x";"x";;;"Project Manager"
"perm.project.Resource.rwcde";"com.axelor.apps.project.db.Resource";"x";"x";"x";"x";"x";;;"Project Manager"
"perm.project.ProjectPlanningTime.rwcde";"com.axelor.apps.project.db.ProjectPlanningTime";"x";"x";"x";"x";"x";;;"Project Manager"
1 name object can_read can_write can_create can_remove can_export condition conditionParams roleName
2 perm.project.Project.r com.axelor.apps.project.db.Project x self.company.id in (?) __user__.companySet.id.plus(0) Project Read
3 perm.project.ProjectPlanning.r com.axelor.apps.project.db.ProjectPlanning x Project Read
4 perm.project.TeamTaskCategory.r com.axelor.apps.project.db.TeamTaskCategory x Project Read
5 perm.project.ResourceType.r com.axelor.apps.project.db.ResourceType x Project Read
6 perm.project.ProjectFolder.r com.axelor.apps.project.db.ProjectFolder x Project Read
7 perm.project.ResourceBooking.r com.axelor.apps.project.db.ResourceBooking x Project Read
8 perm.project.Wiki.r com.axelor.apps.project.db.Wiki x Project Read
9 perm.project.ProjectStatus.r com.axelor.apps.project.db.ProjectStatus x Project Read
10 perm.project.Resource.r com.axelor.apps.project.db.Resource x Project Read
11 perm.project.ProjectPlanningTime.r com.axelor.apps.project.db.ProjectPlanningTime x Project Read
12 perm.project.Project.rwc com.axelor.apps.project.db.Project x x x self.company.id in (?) __user__.companySet.id.plus(0) Project User
13 perm.project.ProjectPlanning.rwc com.axelor.apps.project.db.ProjectPlanning x x x Project User
14 perm.project.TeamTaskCategory.rwc com.axelor.apps.project.db.TeamTaskCategory x x x Project User
15 perm.project.ResourceType.rwc com.axelor.apps.project.db.ResourceType x x x Project User
16 perm.project.ProjectFolder.rwc com.axelor.apps.project.db.ProjectFolder x x x Project User
17 perm.project.ResourceBooking.rwc com.axelor.apps.project.db.ResourceBooking x x x Project User
18 perm.project.Wiki.rwc com.axelor.apps.project.db.Wiki x x x Project User
19 perm.project.ProjectStatus.rwc com.axelor.apps.project.db.ProjectStatus x x x Project User
20 perm.project.Resource.rwc com.axelor.apps.project.db.Resource x x x Project User
21 perm.project.ProjectPlanningTime.rwc com.axelor.apps.project.db.ProjectPlanningTime x x x Project User
22 perm.project.Project.rwcde com.axelor.apps.project.db.Project x x x x x self.company.id in (?) __user__.companySet.id.plus(0) Project Manager
23 perm.project.ProjectPlanning.rwcde com.axelor.apps.project.db.ProjectPlanning x x x x x Project Manager
24 perm.project.TeamTaskCategory.rwcde com.axelor.apps.project.db.TeamTaskCategory x x x x x Project Manager
25 perm.project.ResourceType.rwcde com.axelor.apps.project.db.ResourceType x x x x x Project Manager
26 perm.project.ProjectFolder.rwcde com.axelor.apps.project.db.ProjectFolder x x x x x Project Manager
27 perm.project.ResourceBooking.rwcde com.axelor.apps.project.db.ResourceBooking x x x x x Project Manager
28 perm.project.Wiki.rwcde com.axelor.apps.project.db.Wiki x x x x x Project Manager
29 perm.project.ProjectStatus.rwcde com.axelor.apps.project.db.ProjectStatus x x x x x Project Manager
30 perm.project.Resource.rwcde com.axelor.apps.project.db.Resource x x x x x Project Manager
31 perm.project.ProjectPlanningTime.rwcde com.axelor.apps.project.db.ProjectPlanningTime x x x x x Project Manager

View File

@ -0,0 +1,4 @@
"name";"description"
"Project Read";
"Project User";
"Project Manager";
1 name description
2 Project Read
3 Project User
4 Project Manager

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<form name="app-project-config-form" title="App project" model="com.axelor.apps.base.db.AppProject" canDelete="false" canNew="false" width="large">
<panel name="mainPanel">
<field name="projectLabel"/>
<field name="resourceManagement" widget="boolean-switch" />
<field name="isEnableSignature" widget="boolean-switch" />
<field name="generateProjectSequence" widget="boolean-switch"/>
</panel>
<panel-mail name="mailPanel">
<mail-messages limit="4"/>
<mail-followers/>
</panel-mail>
</form>
</object-views>

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<chart name="chart.daily.planned.charge.in.month.per.project" title="Daily planned charge in a month per project">
<dataset type="jpql">
<![CDATA[
select sum(e.hourlyRate*t.plannedHours) as charge, p.name as project
FROM Project p
INNER JOIN ProjectPlanningTime t ON t.project = p.id
INNER JOIN User u ON t.user = u.id
INNER JOIN Employee e ON u.employee = e.id
WHERE MONTH(t.date) = MONTH(CURRENT_DATE)
GROUP BY p.id
]]>
</dataset>
<category key="project" title="Project"/>
<series key="charge" type="bar" title="Planned charge"/>
</chart>
<chart name="chart.daily.planned.charge.in.month.per.employee" title="Daily planned charge in a month per employee">
<dataset type="jpql">
<![CDATA[
select sum(e.hourlyRate*t.plannedHours) as charge, p.name as project , e.name as employee
FROM Project p
INNER JOIN ProjectPlanningTime t ON t.project = p.id
INNER JOIN User u ON t.user = u.id
INNER JOIN Employee e ON u.employee = e.id
WHERE MONTH(t.date) = MONTH(CURRENT_DATE)
GROUP BY p.id,e.id
]]>
</dataset>
<category key="employee" title="Employee"/>
<series key="charge" type="bar" title="Planned charge"/>
</chart>
<chart name="chart.average.daily.planned.charge.in.month.per.employee" title="Daily planned charge in a month in an average per employee">
<dataset type="jpql">
<![CDATA[
select avg(e.hourlyRate*t.plannedHours) as charge , e.name as employee
FROM Project p
INNER JOIN ProjectPlanningTime t ON t.project = p.id
INNER JOIN User u ON t.user = u.id
INNER JOIN Employee e ON u.employee = e.id
WHERE MONTH(t.date) = MONTH(CURRENT_DATE)
GROUP BY e.id
]]>
</dataset>
<category key="employee" title="Employee"/>
<series key="charge" type="bar" title="Planned charge"/>
</chart>
</object-views>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<dashboard name="project-my-projects" title="My projects">
<dashlet action="action-project-db-my-tasks-to-do"/>
<dashlet action="action-project-db-my-tasks-due"/>
<dashlet action="action-project-db-my-today-planning"/>
<dashlet action="action-project-db-my-upcomming-planning"/>
</dashboard>
<dashboard name="project-planned-charge" title="Planned charge">
<dashlet action="chart:chart.daily.planned.charge.in.month.per.project" colSpan="12"/>
<dashlet action="chart:chart.daily.planned.charge.in.month.per.employee" colSpan="12"/>
<dashlet action="chart:chart.average.daily.planned.charge.in.month.per.employee" colSpan="12"/>
</dashboard>
<action-view name="action-project-db-my-tasks-to-do" title="My tasks to do" model="com.axelor.team.db.TeamTask">
<view type="grid" name="team-task-grid" />
<view type="form" name="team-task-form" />
<domain><![CDATA[
(self.assignedTo = :__user__ AND self.status NOT IN :closed_status) AND
(self.taskDeadline <= current_date OR self.taskDate <= current_date)
]]></domain>
<context name="closed_status" expr="#{['closed', 'canceled']}"/>
</action-view>
<action-view name="action-project-db-my-tasks-due" title="My tasks due" model="com.axelor.team.db.TeamTask">
<view type="grid" name="team-task-grid" />
<view type="form" name="team-task-form" />
<domain><![CDATA[
(self.assignedTo = :__user__ AND self.status NOT IN :closed_status) AND
(self.taskDeadline <= current_date)
]]></domain>
<context name="closed_status" expr="#{['closed', 'canceled']}"/>
</action-view>
<action-view name="action-project-db-my-today-planning" title="My today planning" model="com.axelor.apps.project.db.ProjectPlanningTime">
<view type="grid" name="project-planning-db-grid" />
<view type="form" name="project-planning-time-form" />
<domain>self.date = :__datetime__ AND self.user = :__user__</domain>
</action-view>
<action-view name="action-project-db-my-upcomming-planning" title="My upcoming planning" model="com.axelor.apps.project.db.ProjectPlanningTime">
<view type="grid" name="project-planning-db-grid" />
<view type="form" name="project-planning-time-form" />
<domain>self.date &gt; :__datetime__ AND self.user = :__user__</domain>
</action-view>
</object-views>

View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<menuitem name="menu-project-root" order="-103" title="Projects" icon="fa-tasks" if="__config__.app.isApp('project')"
icon-background="#3f6bb9"/>
<menuitem name="project-folder" parent="menu-project-root" title="Project Folder" action="project.folder" order="5"/>
<action-view name="project.folder" title="Project Folder" model="com.axelor.apps.project.db.ProjectFolder">
<view type="grid" name="project-folder-grid"/>
<view type="form" name="project-folder-form"/>
</action-view>
<menuitem name="project-all" parent="menu-project-root" order="10"
title="Projects"
action="project.all"/>
<action-view name="project.all" title="Projects" model="com.axelor.apps.project.db.Project">
<view type="grid" name="project-grid"/>
<view type="form" name="project-form"/>
<view type="kanban" name="project-kanban"/>
<domain>self.isProject = true and (self.projectTypeSelect = :_xProjectTypeSelect or self.projectTypeSelect = 0 or self.projectTypeSelect = null)</domain>
<context name="_fromProject" expr="eval:true"/>
<context name="_xProjectTypeSelect" expr="eval: __repo__(Project).TYPE_PROJECT"/>
</action-view>
<menuitem name="project-phases" parent="menu-project-root" title="Project phases" action="all.phases" order="15"/>
<action-view name="all.phases" title="Project phases" model="com.axelor.apps.project.db.Project">
<view type="grid" name="project-grid"/>
<view type="form" name="project-form"/>
<view type="kanban" name="project-kanban"/>
<domain>self.isProject = true and self.projectTypeSelect = :_xProjectTypeSelect</domain>
<context name="_fromProject" expr="eval:true"/>
<context name="_xProjectTypeSelect" expr="eval: __repo__(Project).TYPE_PHASE"/>
</action-view>
<menuitem name="project-open-tasks" parent="menu-project-root" title="Tasks" order="20" action="all.open.project.tasks"/>
<action-view name="all.open.project.tasks" title="Project Tasks" model="com.axelor.team.db.TeamTask">
<view type="kanban" name="team-task-kanban"/>
<view type="grid" name="team-task-grid"/>
<view type="form" name="team-task-form"/>
<domain>self.project.statusSelect IN (1,2) and self.typeSelect = 'task'</domain>
<context name="_typeSelect" expr="eval: com.axelor.team.db.repo.TeamTaskRepository.TYPE_TASK"/>
</action-view>
<menuitem name="project-open-tickets" parent="menu-project-root" title="Tickets" order="21" action="all.open.project.tickets" if-module="axelor-business-support" if="__config__.app.isApp('business-support')"/>
<action-view name="all.open.project.tickets" title="Ticket" model="com.axelor.team.db.TeamTask">
<view type="kanban" name="team-task-kanban"/>
<view type="grid" name="team-task-grid"/>
<view type="form" name="team-task-form"/>
<view-param name="forceTitle" value="true"/>
<domain>self.project.statusSelect IN (1,2) and self.typeSelect = 'ticket'</domain>
<context name="_typeSelect" expr="eval: com.axelor.team.db.repo.TeamTaskRepository.TYPE_TICKET"/>
</action-view>
<menuitem name="project-wiki" parent="menu-project-root" title="Wiki" action="all.wiki" order="30"/>
<action-view name="all.wiki" title="Project Wiki" model="com.axelor.apps.project.db.Wiki">
<view type="grid" name="wiki-grid"/>
<view type="form" name="wiki-form"/>
</action-view>
<menuitem name="project-template" parent="menu-project-root" order="38" title="Template"/>
<menuitem name="project-task-template" parent="project-template" title="Task template" action="project.task.template"/>
<action-view name="project.task.template" title="Task template" model="com.axelor.apps.project.db.TaskTemplate">
<view type="grid" name="task-template-grid"/>
<view type="form" name="task-template-form"/>
</action-view>
<menuitem name="project-project-template" parent="project-template" title="Project template" action="project.project.template"/>
<action-view name="project.project.template" title="Project template" model="com.axelor.apps.project.db.ProjectTemplate">
<view type="grid" name="project-template-grid"/>
<view type="form" name="project-template-form"/>
</action-view>
<menuitem title="Historical" name="project-historical" parent="menu-project-root" order="39" icon="fa-clock-o"/>
<menuitem name="project-task-history" parent="project-historical" title="Task history" action="all.tasks.history"/>
<action-view name="all.tasks.history" title="Task history" model="com.axelor.team.db.TeamTask">
<view type="grid" name="team-task-grid"/>
<view type="form" name="team-task-form"/>
<domain>self.status = 'closed' or self.status = 'canceled'</domain>
</action-view>
<menuitem name="project-reporting" parent="menu-project-root" order="40" title="Reportings" icon="fa-bar-chart"/>
<menuitem name="project-reporting-my-projects" parent="project-reporting" order="31" title="My projects" action="project.my.projects"/>
<action-view name="project.my.projects" title="My projects">
<view type="dashboard" name="project-my-projects"/>
</action-view>
<menuitem name="project-reporting-planned-charge" parent="project-reporting" order="32" title="Planned charge" action="project.planned.charge"/>
<action-view name="project.planned.charge" title="Planned charge">
<view type="dashboard" name="project-planned-charge"/>
</action-view>
<menuitem name="project-resource-booking" title="Resource bookings" order="35" parent="menu-project-root" action="project.resource.booking" if="__config__.app.getApp('project').getResourceManagement()" />
<action-view name="project.resource.booking" title="Resource bookings" model="com.axelor.apps.project.db.ResourceBooking">
<view type="grid" name="resource-booking-grid" />
<view type="form" name="resource-booking-form" />
<view type="calendar" name="resource-booking-calendar" />
</action-view>
<!-- PROJECT CONFIGURATION -->
<menuitem name="project-configurations" parent="menu-project-root" title="Configuration" order="41" icon="fa-cog"/>
<menuitem name="team-task-category" parent="project-configurations" title="Category" action="team.task.category"/>
<action-view name="team.task.category" title="Team Task Category" model="com.axelor.apps.project.db.TeamTaskCategory">
<view type="grid" name="team-task-category-grid"/>
<view type="form" name="team-task-category-form"/>
</action-view>
<menuitem name="project-resource-type" parent="project-configurations" title="Resource types" action="project.resource.types" if="__config__.app.getApp('project').getResourceManagement()" />
<action-view name="project.resource.types" title="Resource types" model="com.axelor.apps.project.db.ResourceType">
<view type="grid" name="resource-type-grid"/>
<view type="form" name="resource-type-form"/>
</action-view>
<menuitem name="project-resource" title="project-Resources" order="32" parent="project-configurations" action="project.resource" if="__config__.app.getApp('project').getResourceManagement()" />
<action-view name="project.resource" title="Resources" model="com.axelor.apps.project.db.Resource">
<view type="grid" name="resource-grid" />
<view type="form" name="resource-form" />
</action-view>
</object-views>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<action-method name="action-partner-method-generate-project">
<call class="com.axelor.apps.project.web.PartnerController" method="generateProject"/>
</action-method>
</object-views>

View File

@ -0,0 +1,837 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="project-grid" title="Projects" model="com.axelor.apps.project.db.Project">
<toolbar>
<button name="projectPlanningBtn" title="Project planning" onClick="action-project-view-project-planning-wizard" if="__config__.app.isApp('employee')" if-module="axelor-human-resource"/>
</toolbar>
<menubar>
<menu name="projectToolsMenu" title="Tools" icon="fa-wrench" showTitle="true">
<item name="ganttWithUserItem" title="Gantt with user" action="action-project-open-popup-select-users"/>
<item name="ganttWithProjectItem" title="Gantt with project" action="action-project-open-popup-select-projects"/>
</menu>
</menubar>
<hilite background="primary" if="isProject &amp;&amp; projectTypeSelect == 1"/>
<hilite background="info" if="isProject &amp;&amp; projectTypeSelect == 2"/>
<field name="code"/>
<field name="name"/>
<field name="parentProject"/>
<field name="clientPartner"/>
<field name="assignedTo"/>
<field name="fromDate" />
<field name="toDate" />
<field name="dueDate" />
<field name="imputable" width="90"/>
<button name="openGanttBtn" title="Gantt" icon="fa-tasks" onClick="action-project-open-gantt"/>
<field name="isProject" hidden="true"/>
<field name="projectTypeSelect" hidden="true"/>
</grid>
<grid name="folder-project-grid" title="Projects" model="com.axelor.apps.project.db.Project">
<field name="fullName"/>
<field name="company" if="__config__.app.getApp('base').getEnableMultiCompany()"/>
<field name="clientPartner"/>
</grid>
<form name="project-form" title="Project"
model="com.axelor.apps.project.db.Project" onLoad="action-project-on-load-group"
onNew="action-project-group-on-new-project">
<menubar>
<menu name="projectReportsMenu" title="Reports" showTitle="true" icon="fa-files-o">
<item if-module="axelor-business-project" name="planificationAndCostsItem" title="Planification and costs"
action="save,action-project-method-print-planif-and-cost" />
<item if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
name="financialReportItem" title="Financial Report" showIf="isBusinessProject"
action="save,action-project-method-print-project" />
</menu>
<menu name="projectToolsMenu" title="Tools" showTitle="true" icon="fa-wrench">
<item name="ganttItem" title="Gantt" showIf="isProject" action="action-project-open-gantt" />
<item name="bookResourceItem" title="Book resource" showIf="isProject" if=" __config__.app.getApp('project')?.resourceManagement"
action="save,action-project-book-resource" />
</menu>
</menubar>
<panel name="mainPanel">
<panel name="detailsPanel" colSpan="12">
<field name="statusSelect" showTitle="false" readonly="true"
colSpan="8" widget="NavSelect" />
<field name="$viewerProjectTags" showTitle="false" colSpan="4"
readonly="true">
<viewer
depends="isBusinessProject,isProject,projectTypeSelect,$toInvoiceCounter,id">
<![CDATA[
<h4 style="text-align: right;">
<span class="label label-default" style="background-color: #FD6217; margin: 5px 0 !important; display: inline-table; line-height: initial; border-top-right-radius: 0; border-bottom-right-radius: 0; padding-right: 0.4em;" ng-show="record.isBusinessProject" x-translate>To Invoice</span><span class="label label-default" style="background-color: #FFAA00; margin: 5px 0 !important; display: inline-table; line-height: initial; border-top-left-radius: 0; border-bottom-left-radius: 0;" ng-show="record.isBusinessProject &amp;&amp; record.id">{{record.$toInvoiceCounter}}</span>
<span class="label label-default" style="background-color: #86BC25; margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.isProject &amp;&amp; record.projectTypeSelect == 1" x-translate>Project</span>
<span class="label label-default" style="background-color: #86BC25; margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.isProject &amp;&amp; record.projectTypeSelect == 2" x-translate>Project phase</span>
<span class="label label-default" style="background-color: #2185D0; margin: 5px 0 !important; display: inline-table; line-height: initial;" ng-show="record.isBusinessProject" x-translate>Business</span>
</h4>
]]>
</viewer>
</field>
</panel>
<panel name="informationPanel" colSpan="10">
<field name="fullName" showTitle="false" colSpan="12"
css="label-bold bold large">
<editor x-show-titles="false">
<panel name="seq" colSpan="3">
<field name="code" showTitle="false" colSpan="12" required="true" if="__config__.app.getApp('project')?.generateProjectSequence"
css="label-bold bold large" x-bind="{{code|unaccent|uppercase}}" />
<field name="code" showTitle="false" colSpan="12" required="true" if="!__config__.app.getApp('project')?.generateProjectSequence"
css="label-bold bold large" x-bind="{{code|unaccent|uppercase}}" />
</panel>
<field name="name" showTitle="false" colSpan="6" required="true"
css="label-bold bold large" />
</editor>
</field>
</panel>
</panel>
<panel name="detailsPanel">
<panel name="generalInfoPanel" colSpan="12">
<field name="company" form-view="company-form" grid-view="company-grid"
colSpan="3" canEdit="false"/>
<field name="clientPartner" domain="self.isCustomer = true AND :company member of self.companySet" onChange="action-project-method-get-partner-data"
requiredIf="isBusinessProject" form-view="partner-form" grid-view="partner-grid"
colSpan="3" if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
showIf="isBusinessProject" />
<field name="currency" colSpan="3"
if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
showIf="isBusinessProject" canEdit="false"/>
<field name="priceList" colSpan="3"
if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
showIf="isBusinessProject" canEdit="false"/>
<field name="contactPartner" onSelect="action-attrs-domain-on-contact-partner"
form-view="partner-form" grid-view="partner-grid" colSpan="6"
if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
showIf="isBusinessProject" />
<field name="customerAddress" grid-view="address-grid" form-view="address-form"
if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
showIf="isBusinessProject" domain="self IN (SELECT address FROM PartnerAddress where partner = :clientPartner)"/>
</panel>
<field name="progress" showIf="isProject" widget="Progress" colSpan="12">
<editor>
<field name="progress" showTitle="false" colSpan="3" />
</editor>
</field>
<field name="description" colSpan="12" widget="html" />
</panel>
<panel-tabs name="mainPanelTab">
<panel title="Task Tree" name="taskTreePanel" showIf="isProject">
<panel title="Phases" name="phasesPanel"
showIf="isProject &amp;&amp; childProjectList.length > 0" colSpan="12" showTitle="false">
<button name="addPhaseBtn" title="New" colSpan="2"
css="btn-custom text-left" icon="fa-plus" onClick="save,action-project-view-phase-new" />
<button name="allPhasesBtn" title="All phases" colSpan="4"
css="btn-custom text-left" icon="fa-tasks" onClick="save,action-project-view-phase-all" />
<button name="allPhaseTasksBtn" title="All phase tasks" colSpan="6"
css="btn-custom text-left" icon="fa-tasks"
onClick="save,action-project-phase-view-show-phase-task" />
<panel-dashlet name="projectPhaseTreeDashletPanel" title="Phases" colSpan="12"
action="tree:project-phase-tree" />
</panel>
<button name="addTaskBtn" title="New task" colSpan="2"
css="btn-custom text-left" icon="fa-plus" onClick="save,action-project-add-task" />
<button name="addTicketBtn" title="New ticket" colSpan="2" css="btn-custom text-left" icon="fa-plus" onClick="save,action-project-add-ticket" if-module="axelor-business-support" if="__config__.app.isApp('business-support')"/>
<button name="allTaskBtn" title="All tasks" colSpan="2"
css="btn-custom text-left" icon="fa-tasks"
onClick="action-project-view-show-related-tasks" />
<panel-dashlet name="projectTaskTreeDashletPanel" title="Task Tree" colSpan="12"
action="action-view-show-project-task-tree" />
<panel-dashlet name="taskInvoicingDashletPanel" title="Task Invoicing" colSpan="12"
action="action-dashlet-project-show-all-invoicing-task" if="__config__.app.isApp('business-project')" canSearch="true"/>
</panel>
<panel title="Members" name="membersPanel">
<field name="team" title="Team"
readonlyIf="synchronize || extendsMembersFromParent" colSpan="6"
canNew="false" canEdit="false" />
<field name="synchronize" readonlyIf="extendsMembersFromParent"
colSpan="2" widget="boolean-switch" />
<field name="extendsMembersFromParent" hidden="true"
showIf="projectTypeSelect == 2" colSpan="3" widget="boolean-switch" />
<field name="membersUserSet" colSpan="12"
widget="TagSelect" canNew="false" form-view="user-form" grid-view="user-grid" />
<button name="importMemberBtn" title="Import all members"
showIf="team != null" readonlyIf="extendsMembersFromParent" colSpan="3"
onClick="action-project-method-import-members" />
<panel title="Planning" name="planningPanel" colSpan="12"
if="__config__.app.isApp('employee')" if-module="axelor-human-resource">
<field name="totalPlannedHrs" readonly="true">
<viewer><![CDATA[
<span>{{record.totalPlannedHrs}} </span><span x-translate>hours</span>
]]></viewer>
</field>
<spacer name="totalPlannedHrsSpacer" colSpan="6" />
<button name="planPlanningBtn" title="Plan project" css="btn-custom text-left" onClick="save,action-project-view-project-planning-wizard" hideIf="$popup()" colSpan="3"/>
<button name="addMultipleLinesBtn" title="Add multiple lines" css="btn-custom text-left" onClick="save,action-project-view-add-multiple-project-planning-time" colSpan="3" hideIf="$popup()"/>
<button name="addProjectPlanningTimeLineBtn" title="New line" css="btn-custom text-left" colSpan="3" onClick="save,action-project-view-project-planning-time-add-new,save" />
<button name="removeProjectPlanningTimeLineBtn" title="Remove lines" css="btn-custom text-left" colSpan="3" onClick="save,action-project-attrs-project-planning-time-remove,save" />
<field name="$projectPlanningTimeSet" hidden="true" type="many-to-many" widget="TagSelect" title="Planned Time Planning"
colSpan="12" target="com.axelor.apps.project.db.ProjectPlanningTime" canEdit="false" canNew="false"
grid-view="project-planning-time-grid" form-view="project-planning-time-form"/>
<button name="removeSelectedPlanningTimeBtn" colSpan="4" hidden="true" title="Remove selected lines" onClick="action-project-validate-remove-project-planning-time,action-project-planning-time-method-remove-project-planning-time"/>
<button name="cancelRemovePlanningTimeBtn" colSpan="4" hidden="true" title="Cancel" onClick="action-project-attrs-project-planning-time-cancel-remove" />
<panel-dashlet name="projectPlanningTimePanel" title="Planned Time Planning" action="action-project-dashlet-project-planning-time" colSpan="12" canSearch="true"/>
</panel>
</panel>
<panel title="Log Times" name="logTimesPanel"
if="__config__.app.isApp('timesheet')" if-module="axelor-human-resource">
<field name="timeSpent" title="Time Spent" readonly="true"
colSpan="3" />
<panel-dashlet name="validatedTimesheetsPanel" action="action-project-dashlet-validated-timeshet-lines" title="Validated Timesheet lines" colSpan="12" canSearch="true"/>
<panel-dashlet name="waitingTimesheetLinesPanel" action="action-project-dashlet-project-waiting-timeshet-lines" title="Waiting Timesheet lines" colSpan="12" canSearch="true"/>
</panel>
<panel title="Sales" name="salesPanel" showIf="isBusinessProject"
if="__config__.app.isApp('business-project')
&amp;&amp; __config__.app.getApp('business-project').getShowSaleOrderLineRelatedToProject()"
if-module="axelor-business-project">
<button name="generateQuotationBtn" title="Generate quotation"
onClick="action-project-method-generate-quotation" css="btn-custom text-left" />
<button name="showSaleOrderLinesBtn" title="Show sale order lines"
css="btn-custom" icon="fa-line-chart" onClick="action-project-view-show-sale-order-lines" />
<panel-dashlet name="saleQuotationPanel" action="action-project-dashlet-sale-quotation" colSpan="12" canSearch="true"/>
<panel-dashlet name="saleOrderPanel" action="action-project-dashlet-sale-order" colSpan="12" canSearch="true"/>
<button name="selectNewSOLinesBtn" title="Select new lines" css="btn-custom text-left" onClick="save,action-project-attrs-sales-order-line-select-lines" hideIf="$popup() || $readonly()" colSpan="3"/>
<button name="manageSOLinesBtn" title="Manage lines" css="btn-custom text-left" onClick="save,action-project-attrs-sales-order-line-manage-lines" hideIf="$popup() || $readonly()" colSpan="3"/>
<field name="$salesOrderLineSet" hidden="true" type="many-to-many" widget="TagSelect" title="Sale order lines"
colSpan="12" target="com.axelor.apps.sale.db.SaleOrderLine" canEdit="false" canNew="false"
grid-view="sale-order-line-project-grid" form-view="sale-order-line-form"/>
<button-group name="SOLinesBtnGroup" colSpan="4">
<button name="addSelectedSOLinesBtn" hidden="true" title="Add selected lines" onClick="action-sale-order-line-method-set-project"/>
<button name="unlinkSelectedSOLinesBtn" hidden="true" title="Unlink selected lines" onClick="action-validate-unset-project,action-sale-order-line-method-unset-project"/>
</button-group>
<button name="cancelManageSOLinesBtn" colSpan="4" hidden="true" title="Cancel" onClick="action-project-attrs-sales-order-line-cancel-manage-lines" />
<panel-dashlet name="saleOrderLinePanel" action="action-project-view-show-confirmed-sale-order-lines" colSpan="12" canSearch="true"/>
<panel-dashlet name="customerDeliveriesPanel" action="action-project-dashlet-customer-deliveries" colSpan="12"/>
</panel>
<panel title="Purchases" name="purchasesPanel" showIf="isBusinessProject"
if="__config__.app.isApp('business-project')
&amp;&amp; __config__.app.getApp('business-project').getShowPurchaseOrderLineRelatedToProject()"
if-module="axelor-business-project">
<button name="generatePurchaseQuotationBtn" title="Generate quotation"
onClick="action-project-method-generate-purchase-quotation" css="btn-custom text-left" />
<button name="showPurchaseOrderLinesBtn" title="Show purchase order lines"
css="btn-custom" icon="fa-shopping-cart"
onClick="action-project-view-show-purchase-order-lines" />
<panel-dashlet name="purchaseQuotationPanel" action="action-project-project-purchase-quotation" colSpan="12" canSearch="true"/>
<panel-dashlet name="purchaseOrderPanel" action="action-project-dashlet-purchase-order" colSpan="12" canSearch="true"/>
<button name="selectNewPOLinesBtn" title="Select new lines" css="btn-custom text-left" onClick="save,action-project-attrs-purchase-order-line-select-lines" hideIf="$popup() || $readonly()" colSpan="3"/>
<button name="managePOLinesBtn" title="Manage lines" css="btn-custom text-left" onClick="save,action-project-attrs-purchase-order-line-manage-lines" hideIf="$popup() || $readonly()" colSpan="3"/>
<field name="$purchaseOrderLineSet" hidden="true" type="many-to-many" widget="TagSelect" title="Purchase order lines"
colSpan="12" target="com.axelor.apps.purchase.db.PurchaseOrderLine" canEdit="false" canNew="false"
grid-view="purchase-order-line-project-grid" form-view="purchase-order-line-form"/>
<button-group name="POLinesBtnGroup" colSpan="4">
<button name="addSelectedPOLinesBtn" hidden="true" title="Add selected lines" onClick="action-purchase-order-line-method-set-project"/>
<button name="unlinkSelectedPOLinesBtn" hidden="true" title="Unlink selected lines" onClick="action-validate-unset-project,action-purchase-order-line-method-unset-project"/>
</button-group>
<button name="cancelManagePOLinesBtn" colSpan="4" hidden="true" title="Cancel" onClick="action-project-attrs-purchase-order-line-cancel-manage-lines" />
<panel-dashlet name="purchaseOrderLinePanel" action="action-project-view-show-confirmed-purchase-order-lines" colSpan="12" canSearch="true"/>
<panel-dashlet name="supplierArrivalsPanel" action="action-project-dashlet-supplier-arrivals" colSpan="12"/>
</panel>
<panel name="resourceBookingListPanel" title="Resource booking" if="__config__.app.getApp('project').resourceManagement">
<panel-related name="resourceBookingListPanel" field="resourceBookingList" form-view="resource-booking-form" grid-view="resource-booking-grid-incl-project" colSpan="12"/>
</panel>
<panel title="Expenses" name="expensesPanel" showIf="isBusinessProject"
if="__config__.app.isApp('business-project')
&amp;&amp; __config__.app.getApp('business-project').getShowExpenseLineRelatedToProject()"
if-module="axelor-business-project">
<button name="showExpenseLinesBtn" title="Show expense lines" css="btn-custom text-left"
icon="fa-credit-card" onClick="action-project-view-show-expense-lines" />
<panel-dashlet name="expenseWaitingPanel" action="action-project-dashlet-expense-waiting" colSpan="12" canSearch="true"/>
<panel-dashlet name="expensePanel" action="action-project-dashlet-expense-validated" colSpan="12" canSearch="true"/>
<button name="selectNewExpenseLinesBtn" title="Select new lines" css="btn-custom text-left" onClick="save,action-project-attrs-expense-line-select-lines" hideIf="$popup() || $readonly()" colSpan="3"/>
<button name="manageExpenseLinesBtn" title="Manage lines" css="btn-custom text-left" onClick="save,action-project-attrs-expense-line-manage-lines" hideIf="$popup() || $readonly()" colSpan="3"/>
<field name="$expenseLineSet" hidden="true" type="many-to-many" widget="TagSelect" title="Expense lines"
colSpan="12" target="com.axelor.apps.hr.db.ExpenseLine" canEdit="false" canNew="false"
grid-view="expense-line-project-grid" form-view="expense-line-form"/>
<button-group name="expenseLinesBtnGroup" colSpan="4">
<button name="addSelectedExpenseLinesBtn" hidden="true" title="Add selected lines" onClick="action-expense-line-method-set-project"/>
<button name="unlinkSelectedExpenseLinesBtn" hidden="true" title="Unlink selected lines" onClick="action-validate-unset-project,action-expense-line-method-unset-project"/>
</button-group>
<button name="cancelManageExpenseLinesBtn" colSpan="4" hidden="true" title="Cancel" onClick="action-project-attrs-expense-line-cancel-manage-lines" />
<panel-dashlet name="expenseLinePanel" action="action-project-view-show-validated-expense-lines" colSpan="12" canSearch="true"/>
</panel>
<panel title="Production" name="productionPanel" showIf="isBusinessProject"
if-module="axelor-business-production"
if="__config__.app.isApp('business-project')
&amp;&amp; __config__.app.getApp('business-project').getShowProductionOrderRelatedToProject()">
<button
name="showProductionOrdersBtn"
title="Show production orders" css="btn-custom text-left" icon="fa-cogs"
onClick="action-project-view-show-production-orders" />
<panel-related
colSpan="12" field="productionOrderList"
canSelect="true" canNew="false" canEdit="false" canSearch="true" name="productionOrderList"/>
</panel>
<panel title="Invoicing" name="invoicingPanel" showIf="isBusinessProject"
if="__config__.app.isApp('business-project')" if-module="axelor-business-project">
<field name="toInvoice" title="Project.toInvoice" colSpan="3" onChange="action-project-attrs-set-invoicing-sequence"/>
<field name="isInvoicingTimesheet" colSpan="3"/>
<field name="isInvoicingExpenses" colSpan="3" />
<field name="isInvoicingPurchases" colSpan="3" />
<field name="invoicingSequenceSelect" showIf="toInvoice" requiredIf="toInvoice" selection-in="[1,2]" colSpan="6"/>
<spacer name="invoicingSequenceSelectSpacer" colSpan="6"/>
<button name="showInvoicingProjectsBtn" title="Create invoicing project"
css="btn-custom" icon="fa-file-text-o"
onClick="save,action-project-view-show-invoicing-projects"/>
<field name="invoicingComment" colSpan="12" />
<panel-related name="manualElementListPanel" colSpan="12" field="manualElementList" form-view="manual-element-form" grid-view="manual-element-grid"/>
<panel-dashlet name="allinvoicingProjectsPanel" action="action-dashlet-project-show-all-invoicing-project" colSpan="12" />
<panel-dashlet name="customerInvoicePanel" action="action-project-dashlet-customer-invoices" colSpan="12" if="__config__.app.getApp('business-project').getShowSaleInvoiceLineRelatedToProject()" canSearch="true"/>
<button name="selectNewCustomerInvoiceLinesBtn" title="Select new lines" css="btn-custom text-left" onClick="save,action-project-attrs-customer-invoice-line-select-lines" hideIf="$popup() || $readonly()" colSpan="3" if="__config__.app.getApp('business-project').getShowSaleInvoiceLineRelatedToProject()" />
<button name="manageCustomerInvoiceLinesBtn" title="Manage lines" css="btn-custom text-left" onClick="save,action-project-attrs-customer-invoice-line-manage-lines" hideIf="$popup() || $readonly()" colSpan="3" if="__config__.app.getApp('business-project').getShowSaleInvoiceLineRelatedToProject()" />
<field name="$customerInvoiceLineSet" hidden="true" type="many-to-many" widget="TagSelect" title="Customer Invoice lines"
colSpan="12" target="com.axelor.apps.account.db.InvoiceLine" canEdit="false" canNew="false"
grid-view="invoice-line-project-grid" form-view="invoice-line-form"/>
<button-group name="customerInvoiceLinesBtnGroup" colSpan="4">
<button name="addSelectedCustomerInvoiceLinesBtn" hidden="true" title="Add selected lines" onClick="action-invoice-line-method-set-customer-invoice-line-project"/>
<button name="unlinkSelectedCustomerInvoiceLinesBtn" hidden="true" title="Unlink selected lines" onClick="action-validate-unset-project,action-invoice-line-method-unset-customer-invoice-line-project"/>
</button-group>
<button name="cancelManageCustomerInvoiceLinesBtn" colSpan="4" hidden="true" title="Cancel" onClick="action-project-attrs-customer-invoice-line-cancel-manage-lines" />
<panel-dashlet name="customerInvoiceLinePanel" action="action-project-view-show-sale-invoice-lines" colSpan="12" if="__config__.app.getApp('business-project').getShowSaleInvoiceLineRelatedToProject()" canSearch="true"/>
<panel-dashlet name="supplierInvoicePanel" action="action-project-dashlet-supplier-invoices" colSpan="12" if="__config__.app.getApp('business-project').getShowPurchaseInvoiceLineRelatedToProject()" canSearch="true"/>
<button name="selectNewSupplierInvoiceLinesBtn" title="Select new lines" css="btn-custom text-left" onClick="save,action-project-attrs-supplier-invoice-line-select-lines" hideIf="$popup() || $readonly()" colSpan="3" if="__config__.app.getApp('business-project').getShowPurchaseInvoiceLineRelatedToProject()"/>
<button name="manageSupplierInvoiceLinesBtn" title="Manage lines" css="btn-custom text-left" onClick="save,action-project-attrs-supplier-invoice-line-manage-lines" hideIf="$popup() || $readonly()" colSpan="3" if="__config__.app.getApp('business-project').getShowPurchaseInvoiceLineRelatedToProject()" />
<field name="$supplierInvoiceLineSet" hidden="true" type="many-to-many" widget="TagSelect" title="Supplier Invoice lines"
colSpan="12" target="com.axelor.apps.account.db.InvoiceLine" canEdit="false" canNew="false"
grid-view="invoice-line-project-grid" form-view="invoice-line-form"/>
<button-group name="supplierInvoiceLinesBtnGroup" colSpan="4">
<button name="addSelectedSupplierInvoiceLinesBtn" hidden="true" title="Add selected lines" onClick="action-invoice-line-method-set-supplier-invoice-line-project"/>
<button name="unlinkSelectedSupplierInvoiceLinesBtn" hidden="true" title="Unlink selected lines" onClick="action-validate-unset-project,action-invoice-line-method-unset-supplier-invoice-line-project"/>
</button-group>
<button name="cancelManageSupplierInvoiceLinesBtn" colSpan="4" hidden="true" title="Cancel" onClick="action-project-attrs-supplier-invoice-line-cancel-manage-lines" />
<panel-dashlet name="supplierInvoiceLinePanel" action="action-project-view-show-purchase-invoice-lines" colSpan="12" if="__config__.app.getApp('business-project').getShowPurchaseInvoiceLineRelatedToProject()" canSearch="true"/>
<panel-dashlet name="advancePaymentInvoicesDashletPanel" action="action-project-dashlet-advance-payment-invoices" colSpan="12"
if="__config__.app.getApp('business-project').getShowPurchaseInvoiceLineRelatedToProject() || __config__.app.getApp('business-project').getShowSaleInvoiceLineRelatedToProject()" canSearch="true"/>
</panel>
<panel title="Analytic" name="analyticPanel" showIf="isBusinessProject"
if="__config__.app.isApp('business-project')" if-module="axelor-business-project">
<panel-dashlet name="analyticDashletPanel" action="action-project-dashlet-analytic-move-lines" colSpan="12"/>
</panel>
<panel title="Wiki" name="wikiPanel" >
<panel-related name="wikiListPanel" field="wikiList" colSpan="12" form-view="wiki-form" grid-view="wiki-grid-incl-project"/>
</panel>
<panel title="Roadmap" name="roadmapPanel" if-module="axelor-business-support" if="__config__.app.isApp('business-support')">
<panel-related name="roadmapListPanel" field="roadmapList" colSpan="12" form-view="project-version-form">
<field name="title"/>
<field name="statusSelect"/>
<field name="testingServerDate"/>
<field name="productionServerDate"/>
</panel-related>
</panel>
<panel name="announcementPanel" title="Announcement" if-module="axelor-business-support" if="__config__.app.isApp('business-support')">
<panel-related name="announcementListPanel" field="announcementList" colSpan="12" form-view="project-announcement-form">
<field name="title"/>
<field name="date"/>
<field name="content"/>
</panel-related>
</panel>
<panel title="Configurations" name="configurationsPanel" >
<field if="__config__.app.isApp('employee')" if-module="axelor-human-resource"
name="productSet" colSpan="12" widget="TagSelect" canEdit="false"
domain="self.isActivity = true" form-view="product-activity-form"
grid-view="product-activity-grid" />
<field name="teamTaskCategorySet" colSpan="12" widget="TagSelect" />
<field name="projectFolderSet" colSpan="12" widget="TagSelect" />
<field name="excludeTimesheetEditor" />
<field name="childProjectList" hidden="true" />
<field name="sequence" hidden="true" />
<field name="excludePlanning" if-module="axelor-business-project"
showIf="isProject" />
<field name="imputable" colSpan="4" widget="boolean-switch"
if="__config__.app.isApp('employee')" if-module="axelor-human-resource" />
</panel>
<panel title="Contracts" name="contractPanel" if="__config__.app.isApp('business-project')" if-module="axelor-business-project">
<button name="createNewCustomerContract" title="Create new customer contract" colSpan="6" onClick="save,action-project-view-create-new-customer-contract"/>
<button name="createNewSupplierContract" title="Create new supplier contract" colSpan="6" onClick="save,action-project-view-create-new-supplier-contract"/>
<panel-dashlet name="customerContractPanel" title="Customer contracts" action="action-project-dashlet-customer-contracts" colSpan="12" canSearch="true"/>
<panel-dashlet name="supplierContractPanel" title="Supplier contracts" action="action-project-dashlet-supplier-contracts" colSpan="12" canSearch="true"/>
<panel-dashlet name="contractInvoicePanel" title="Invoices" action="action-project-dashlet-contract-invoices" colSpan="12"/>
</panel>
</panel-tabs>
<panel name="attrsPanel">
<field name="attrs" colSpan="12" hidden="true" />
</panel>
<panel name="actionsPanel" colSpan="2" sidebar="true">
<button name="startBtn" title="Start" hidden="true" showIf="statusSelect == 1"
colSpan="12" icon="fa-play" onClick="action-project-record-status-in-progress,save" />
<button name="finishBtn" title="Finish" hidden="true" showIf="statusSelect == 2"
colSpan="12" icon="fa-check" onClick="action-project-record-status-finished,save" />
<button name="cancelBtn" title="Cancel" hidden="true"
showIf="statusSelect != 4" colSpan="12" css="btn-danger"
icon="fa-times-circle" onClick="action-project-record-status-canceled,save" />
<button name="newStatusBtn" title="Reset to New" hidden="true"
showIf="statusSelect == 4" colSpan="12" css="btn-danger"
icon="fa-file" onClick="action-project-record-status-new,save" />
</panel>
<panel name="characteristicsPanel" title="Characteristics" colSpan="12"
sidebar="true" canCollapse="true">
<panel name="configPanel" colSpan="12">
<field if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
name="isProject" colSpan="6" widget="boolean-switch" />
<field if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
name="isBusinessProject" colSpan="6" widget="boolean-switch" />
<field name="isShowPhasesElements" hideIf="projectTypeSelect == 2" colSpan="12" widget="boolean-switch" />
<field if="__config__.app.isApp('business-project')" if-module="axelor-business-project"
name="$toInvoiceCounter" showTitle="false" hidden="true" colSpan="6" />
</panel>
<panel if-module="axelor-business-project" name="project"
showIf="isProject" colSpan="12">
<field name="projectTypeSelect" onChange="action-project-record-empty-parent-project"
requiredIf="isProject" />
<field name="parentProject" showIf="projectTypeSelect == 2" canEdit="false"
form-view="project-form" grid-view="project-grid"
onSelect="action-project-attrs-set-parent-project-domain"
requiredIf="projectTypeSelect == 2" />
</panel>
</panel>
<panel name="followUpPanel" colSpan="12" title="Follow-up" sidebar="true" canCollapse="true">
<field name="assignedTo" title="Person In Charge" canNew="false"
canView="false" canEdit="false" onChange="action-attrs-project-add-member"
form-view="user-form" grid-view="user-grid" />
</panel>
<panel name="datePanel" title="Dates" colSpan="12" sidebar="true"
canCollapse="true">
<field name="fromDate" colSpan="6" />
<field name="toDate" colSpan="6" />
<field name="dueDate" showIf="isProject" colSpan="6" />
<field name="estimatedTimeDays" colSpan="6" />
</panel>
<panel-mail name="mailPanel">
<mail-messages limit="4" />
<mail-followers />
</panel-mail>
</form>
<form name="project-select-wizard-form" title="Select Projects" model="com.axelor.apps.base.db.Wizard">
<panel name="mainPanel">
<field name="projectSet" title="Projects" type="many-to-many" colSpan="12" target="com.axelor.apps.project.db.Project" canNew="false"/>
<button name="ganttBtn" title="Open gantt" onClick="action-wizard-validate-project-select,action-open-project-gantt,close" colSpan="3" />
</panel>
</form>
<form name="user-select-wizard-form" title="Select Users" model="com.axelor.apps.base.db.Wizard">
<panel name="mainPanel">
<field name="userSet" title="Users" type="many-to-many" colSpan="12" target="com.axelor.auth.db.User" canNew="false"/>
<button name="ganttBtn" title="Open gantt" onClick="action-wizard-validate-user-select,action-open-user-gantt,close" colSpan="3" />
</panel>
</form>
<kanban columnBy="statusSelect" sequenceBy="orderByState" limit="10"
name="project-kanban" title="Projects" model="com.axelor.apps.project.db.Project">
<field name="fullName"/>
<field name="description"/>
<field name="progress"/>
<field name="dueDate"/>
<field name="statusSelect"/>
<field name="sequence"/>
<hilite color="danger" if="dueDate.isAfter(__datetime__) &amp;&amp; statusSelect &lt; 3"/>
<hilite color="success" if="(dueDate.isBefore(__datetime__) || dueDate.equals(__datetime__)) &amp;&amp; statusSelect &lt; 3"/>
<hilite color="warning" if="(dueDate.isBefore(__datetime__) || dueDate.equals(__datetime__)) &amp;&amp; statusSelect &lt; 3"/>
<template>
&lt;h4&gt;{{fullName}}&lt;/h4&gt;
&lt;div class="card-body"&gt;{{description}}&lt;/div&gt;
&lt;div class="card-footer"&gt;
&lt;i class='fa fa-clock-o'&gt;&lt;/i&gt; &lt;span&gt;{{dueDate|date:'dd/MM/yyyy'}}&lt;/span&gt;
&lt;/div&gt;
</template>
</kanban>
<kanban columnBy="statusSelect" sequenceBy="statusSelect" limit="10"
name="task-kanban" title="Tasks" model="com.axelor.apps.project.db.Project">
<field name="fullName"/>
<field name="description"/>
<field name="progress"/>
<field name="dueDate"/>
<field name="statusSelect"/>
<field name="sequence"/>
<hilite color="danger" if="dueDate.isAfter(__datetime__) &amp;&amp; statusSelect &lt; 3"/>
<hilite color="success" if="(dueDate.isBefore(__datetime__) || dueDate.equals(__datetime__)) &amp;&amp; statusSelect &lt; 3"/>
<hilite color="warning" if="(dueDate.isBefore(__datetime__) || dueDate.equals(__datetime__)) &amp;&amp; statusSelect &lt; 3"/>
<template>
&lt;h4&gt;{{fullName}}&lt;/h4&gt;
&lt;div class="card-body"&gt;{{description}}&lt;/div&gt;
&lt;div class="card-footer"&gt;
&lt;i class='fa fa-clock-o'&gt;&lt;/i&gt; &lt;span&gt;{{dueDate|date:'dd/MM/yyyy'}}&lt;/span&gt;
&lt;/div&gt;
</template>
</kanban>
<calendar name="project-calendar"
model="com.axelor.apps.project.db.Project"
title="Project Calendar"
eventStart="fromDate"
eventStop="toDate"
eventLength="1"
colorBy="statusSelect"
mode="month"
>
<field name="fullName"/>
</calendar>
<action-view name="action-view-show-project-task-tree" title="Project Task Tree" model="com.axelor.team.db.TeamTask">
<view type="tree" name="project-task-tree"/>
<view type="form" name="team-task-form"/>
<domain>self.project.id = :_id AND self.parentTask = null</domain>
<context name="_id" expr="eval: id"/>
</action-view>
<tree name="project-task-tree" title="Tasks">
<column name="name" type="string"/>
<column name="taskDate" type="date"/>
<column name="assignedTo" type="reference"/>
<column name="progress" type="integer"/>
<column name="openTask" type="button"/>
<node model="com.axelor.team.db.TeamTask" domain="self.project.id = :_id" onClick="action-team-task-view-task" orderBy="taskDate">
<field name="name" as="name"/>
<field name="taskDate" as="taskDate"/>
<field name="assignedTo" as="assignedTo"/>
<field name="progressSelect" as="progress"/>
<button name="openTaskBtn" title="Open task" onClick="action-team-task-open-task"/>
</node>
<node model="com.axelor.team.db.TeamTask" parent="parentTask" draggable="true" onClick="action-team-task-view-task" orderBy="taskDate">
<field name="name" as="name"/>
<field name="taskDate" as="taskDate"/>
<field name="assignedTo" as="assignedTo"/>
<field name="progressSelect" as="progress"/>
<button name="openTaskBtn" title="Open task" onClick="action-team-task-open-task"/>
</node>
</tree>
<tree name="project-phase-tree" title="Phases">
<column name="name" type="string"/>
<column name="assignedTo" type="reference"/>
<column name="progress" type="integer"/>
<column name="openTask" type="button"/>
<node model="com.axelor.apps.project.db.Project" domain="self.parentProject.id = :id" onClick="action-project-view-phase">
<field name="name" as="name"/>
<field name="assignedTo" as="assignedTo"/>
<field name="progress" as="progress"/>
<button name="openTaskBtn" title="Open phase" onClick="action-project-view-phase"/>
</node>
<node model="com.axelor.team.db.TeamTask" parent="project" draggable="true" onClick="action-team-task-view-task">
<field name="name" as="name"/>
<field name="assignedTo" as="assignedTo"/>
<field name="progressSelect" as="progress"/>
<button name="openTaskBtn" title="Open task" onClick="action-team-task-open-task"/>
</node>
</tree>
<action-group name="action-project-group-on-new-project">
<action name="action-project-defaults"/>
<action name="action-project-attrs-scale-and-precision"/>
<action name="action-attrs-project-set-project-type" if="__config__.app.isApp('business-project')" />
<action name="action-project-record-init-type"/>
</action-group>
<action-group name="action-project-on-load-group">
<action name="action-project-attrs-scale-and-precision" />
<action name="action-attrs-project-set-project-type" if="__config__.app.isApp('business-project')" />
<action name="action-project-method-count-to-invoice" if="__config__.app.isApp('business-project')"/>
<action name="action-project-attrs-project-planning-time-cancel-remove" />
</action-group>
<action-attrs name="action-task-attrs-assigned-to-domain">
<attribute name="domain" for="assignedTo" expr="eval:&quot;self.id in (${(project?.membersUserSet?.collect{it->it.id}+[0,0]).join(',')}) &quot;"
if="(typeSelect == 'task')&amp;&amp;(project?.membersUserSet)&amp;&amp;(!project.membersUserSet.isEmpty())" />
</action-attrs>
<action-attrs name="action-project-defaults" model="com.axelor.apps.project.db.Project">
<attribute name="value" for="fromDate" expr="eval: __datetime__"/>
<attribute name="value" for="company" expr="eval:__user__.activeCompany"/>
<attribute name="value" for="assignedTo" expr="eval: __user__"/>
<attribute name="value:add" for="membersUserSet" expr="eval: __user__"/>
<attribute name="value" for="isProject" expr="eval:_fromProject"/>
<attribute name="value" for="isBusinessProject" expr="eval:_fromBusinessProject"/>
<attribute name="value" for="parentProject" expr="eval:__repo__(Project).find(_parentProjectId)" if="_parentProjectId != null" />
</action-attrs>
<action-attrs name="action-attrs-project-add-member" model="com.axelor.apps.project.db.Project">
<attribute name="value:add" for="membersUserSet" expr="eval: assignedTo"/>
</action-attrs>
<action-attrs name="action-attrs-project-set-project-type" model="com.axelor.apps.project.db.Project">
<attribute name="readonly" for="isProject" expr="eval:_fromProject"/>
<attribute name="readonly" for="isBusinessProject" expr="eval:_fromBusinessProject"/>
</action-attrs>
<action-attrs name="action-project-attrs-set-parent-project-domain" model="com.axelor.apps.project.db.Project">
<attribute name="domain" for="parentProject" expr="eval:&quot;self.isProject = true AND self.projectTypeSelect = 1 AND self.id != :id&quot;" if="id != null"/>
<attribute name="domain" for="parentProject" expr="eval:&quot;self.isProject = true AND self.projectTypeSelect = 1&quot;" if="id == null"/>
</action-attrs>
<action-record name="action-project-record-init-type" model="com.axelor.apps.project.db.Project">
<field name="projectTypeSelect" expr="eval: _xProjectTypeSelect"/>
</action-record>
<action-record name="action-project-record-empty-parent-project" model="com.axelor.apps.project.db.Project">
<field name="parentProject" expr="eval: null"/>
</action-record>
<action-view name="action-project-task-view" title="Tasks" model="com.axelor.team.db.TeamTask">
<view type="form" name="team-task-form"/>
<view-param name="popup" value="reload"/>
<view-param name="show-toolbar" value="false"/>
<view-param name="show-confirm" value="false" />
<view-param name="popup-save" value="false"/>
<context name="_showRecord" expr="eval: id"/>
</action-view>
<action-view name="action-project-view-show-project" title="Related Projects" model="com.axelor.apps.project.db.Project">
<view type="grid" name="project-grid" />
<view type="form" name="project-form" />
<domain>self.typeSelect = 'project' AND self.project.id = :id</domain>
</action-view>
<action-view name="action-project-view-show-task" title="Tasks" model="com.axelor.apps.project.db.Project">
<view type="grid" name="team-task-grid" />
<view type="form" name="team-task-form" />
<domain>self.typeSelect = 'task' AND self.project.id = :id</domain>
</action-view>
<action-view name="action-project-view-show-related-tasks" title="Related tasks" model="com.axelor.team.db.TeamTask">
<view type="kanban" name="team-task-kanban"/>
<view type="grid" name="team-task-grid"/>
<view type="form" name="team-task-form"/>
<domain>(self.project.id = :_id OR self.project.parentProject.id = :_id)</domain>
</action-view>
<action-view name="action-project-view-create-team" model="com.axelor.team.db.Team" title="Team">
<view name="team-grid" type="grid"/>
<view name="team-form" type="form"/>
<view-param name="popup" value="reload"/>
<view-param name="show-toolbar" value="false"/>
<view-param name="show-confirm" value="true"/>
<view-param name="popup-save" value="true"/>
<view-param name="forceEdit" value="true"/>
<context name="_showRecord" expr="eval: id"/>
</action-view>
<action-view name="action-project-open-gantt" title="Gantt" model="com.axelor.team.db.TeamTask">
<view type="gantt" name="task-gantt" />
<view type="grid" name="team-task-grid" />
<view type="form" name="team-task-form" />
<domain>self.project.id = :_id OR self.project.parentProject.id = :_id</domain>
<context name="_project" expr="eval:__this__"/>
</action-view>
<action-view name="action-project-book-resource" title="Book resource" model="com.axelor.apps.project.db.ResourceBooking">
<view type="form" name="resource-booking-form" />
<view type="grid" name="resource-booking-grid" />
<view type="calendar" name="resource-booking-calendar" />
<context name="_project" expr="eval:__self__"/>
</action-view>
<action-view name="action-project-add-task" model="com.axelor.team.db.TeamTask" title="Task">
<view name="team-task-form" type="form"/>
<view name="team-task-grid" type="grid"/>
<view-param name="popup" value="reload"/>
<view-param name="popup-save" value="true"/>
<view-param name="show-confirm" value="true"/>
<view-param name="show-toolbar" value="false"/>
<context name="_project" expr="eval:__this__"/>
<context name="_typeSelect" expr="eval: com.axelor.team.db.repo.TeamTaskRepository.TYPE_TASK"/>
</action-view>
<action-view name="action-project-add-ticket" model="com.axelor.team.db.TeamTask" title="Ticket">
<view name="team-task-form" type="form"/>
<view name="team-task-grid" type="grid"/>
<view-param name="popup" value="reload"/>
<view-param name="popup-save" value="true"/>
<view-param name="show-confirm" value="true"/>
<view-param name="show-toolbar" value="false"/>
<view-param name="forceTitle" value="true"/>
<context name="_project" expr="eval:__this__"/>
<context name="_typeSelect" expr="eval: com.axelor.team.db.repo.TeamTaskRepository.TYPE_TICKET"/>
</action-view>
<action-view name="action-project-open-popup-select-users" title="Select Users" model="com.axelor.apps.base.db.Wizard">
<view type="form" name="user-select-wizard-form"/>
<view-param name="show-toolbar" value="false"/>
<view-param name="show-confirm" value="false"/>
<view-param name="popup-save" value="false"/>
</action-view>
<action-view name="action-project-open-popup-select-projects" title="Select Projects" model="com.axelor.apps.base.db.Wizard">
<view type="form" name="project-select-wizard-form"/>
<view-param name="show-toolbar" value="false"/>
<view-param name="show-confirm" value="false"/>
<view-param name="popup-save" value="false"/>
</action-view>
<action-view name="action-open-project-gantt" title="Project Gantt" model="com.axelor.team.db.TeamTask">
<view type="gantt" name="project-task-gantt" />
<view type="grid" name="team-task-grid" />
<view type="form" name="team-task-form" />
<domain>self.project.id IN (:_projectIds) OR self.project.parentProject.id IN (:_projectIds)</domain>
<context name="_projectIds" expr="eval: projectSet.collect{it.id}"/>
</action-view>
<action-view name="action-open-user-gantt" title="User Gantt" model="com.axelor.team.db.TeamTask">
<view type="gantt" name="user-task-gantt" />
<view type="grid" name="team-task-grid" />
<view type="form" name="team-task-form" />
<domain>self.assignedTo.id IN (:_userIds) </domain>
<context name="_userIds" expr="eval: userSet.collect{it.id}"/>
</action-view>
<action-view name="action-project-view-phase" title="Project phase" model="com.axelor.apps.project.db.Project">
<view type="form" name="project-form"/>
<view type="grid" name="project-grid"/>
<view type="calendar" name="project-calendar"/>
<view type="kanban" name="project-kanban"/>
<domain>self.isProject = true and self.projectTypeSelect = :_xProjectTypeSelect and self.parentProject.id = :_parentId</domain>
<context name="_fromProject" expr="eval:true"/>
<context name="_xProjectTypeSelect" expr="eval: __repo__(Project).TYPE_PHASE"/>
<context name="_parentId" expr="eval:_id" />
<context name="_showRecord" expr="eval: id"/>
</action-view>
<action-view name="action-project-view-phase-new" title="Project phase" model="com.axelor.apps.project.db.Project">
<view type="form" name="project-form"/>
<view type="grid" name="project-grid"/>
<view type="calendar" name="project-calendar"/>
<view type="kanban" name="project-kanban"/>
<domain>self.isProject = true and self.projectTypeSelect = :_xProjectTypeSelect and self.parentProject.id = :_parentProjectId</domain>
<context name="_fromProject" expr="eval:true"/>
<context name="_xProjectTypeSelect" expr="eval: __repo__(Project).TYPE_PHASE"/>
<context name="_parentProjectId" expr="eval:id" />
</action-view>
<action-view name="action-project-view-phase-all" title="Project phases" model="com.axelor.apps.project.db.Project">
<view type="grid" name="project-grid"/>
<view type="form" name="project-form"/>
<view type="calendar" name="project-calendar"/>
<view type="kanban" name="project-kanban"/>
<domain>self.isProject = true and self.projectTypeSelect = :_xProjectTypeSelect and self.parentProject.id = :_parentProjectId</domain>
<context name="_fromProject" expr="eval:true"/>
<context name="_xProjectTypeSelect" expr="eval: __repo__(Project).TYPE_PHASE"/>
<context name="_parentProjectId" expr="eval:id" />
</action-view>
<action-view name="action-project-phase-view-show-phase-task" title="Phase tasks" model="com.axelor.team.db.TeamTask">
<view type="grid" name="team-task-grid" />
<view type="form" name="team-task-form" />
<domain>self.project.parentProject.id = :_projectId</domain>
<context name="_projectId" expr="eval:id" />
</action-view>
<action-record name="action-project-record-bind-customer-project" model="com.axelor.apps.project.db.Project">
<field name="clientPartner" expr="eval: project?.clientPartner"/>
</action-record>
<action-record name="action-project-record-bind-customer-parent" model="com.axelor.apps.project.db.Project">
<field name="clientPartner" expr="eval: _parent?.clientPartner"/>
</action-record>
<action-method name="action-method-project-compute-progress">
<call class="com.axelor.apps.businessproject.web.ProjectController" method="computeProgress"/>
</action-method>
<action-method name="action-project-method-count-to-invoice">
<call class="com.axelor.apps.businessproject.web.ProjectController" method="countToInvoice"/>
</action-method>
<action-method name="action-project-view-show-invoicing-projects">
<call class="com.axelor.apps.businessproject.web.ProjectController" method="showInvoicingProjects"/>
</action-method>
<action-attrs name="action-project-attrs-scale-and-precision">
<attribute name="scale" for="price" expr="eval: __config__.app.getNbDecimalDigitForUnitPrice()"/>
</action-attrs>
<action-attrs name="action-attrs-domain-on-contact-partner">
<attribute for="contactPartner" if="clientPartner != null &amp;&amp; !clientPartner.contactPartnerSet.empty" name="domain" expr="eval: &quot;self.id IN (${clientPartner.contactPartnerSet?.collect{it.id}.join(',')})&quot;"/>
<attribute for="contactPartner" if="clientPartner != null &amp;&amp; clientPartner.contactPartnerSet.empty" name="domain" expr="eval: &quot;self.id IN (0)&quot;"/>
<attribute for="contactPartner" if="clientPartner == null" name="domain" expr="eval: &quot;self.isContact = true AND :company member of self.companySet&quot;"/>
</action-attrs>
<action-method name="action-project-method-import-members">
<call class="com.axelor.apps.project.web.ProjectController" method="importMembers"/>
</action-method>
<action-record name="action-project-record-status-in-progress" model="com.axelor.apps.project.db.Project">
<field name="statusSelect" expr="eval: __repo__(Project).STATE_IN_PROGRESS"/>
</action-record>
<action-record name="action-project-record-status-finished" model="com.axelor.apps.project.db.Project">
<field name="statusSelect" expr="eval: __repo__(Project).STATE_FINISHED"/>
</action-record>
<action-record name="action-project-record-status-canceled" model="com.axelor.apps.project.db.Project">
<field name="statusSelect" expr="eval: __repo__(Project).STATE_CANCELED"/>
</action-record>
<action-record name="action-project-record-status-new" model="com.axelor.apps.project.db.Project">
<field name="statusSelect" expr="eval: __repo__(Project).STATE_NEW"/>
</action-record>
<action-validate name="action-wizard-validate-user-select">
<error message="Please select user" if="eval: userSet == null || userSet == 0"/>
</action-validate>
<action-validate name="action-wizard-validate-project-select">
<error message="Please select project" if="eval: projectSet == null || projectSet == 0"/>
</action-validate>
<action-view name="action-project-view-project-planning-wizard" title="Project planning" model="com.axelor.apps.base.db.Wizard">
<view type="form" name="project-planning-user-select-wizard-form"/>
<view-param name="show-confirm" value="false"/>
<view-param name="show-toolbar" value="false"/>
<view-param name="popup" value="reload"/>
<context name="_project" expr="eval:__this__"/>
</action-view>
<action-attrs name="action-business-support-attrs-project-default">
<attribute name="hidden" for="project" expr="eval:true" if="_parent &amp;&amp; (_parent?._model == 'com.axelor.apps.project.db.Project' || _parent?._model == 'com.axelor.apps.project.db.ProjectTemplate')"/>
</action-attrs>
<action-view name="action-project-view-create-new-customer-contract" title="Create new customer contract" model="com.axelor.apps.contract.db.Contract">
<view type="form" name="contract-form"/>
<context name="_xTargetType" expr="eval:1"/>
<context name="_project" expr="eval:__self__"/>
</action-view>
<action-view name="action-project-view-create-new-supplier-contract" title="Create new supplier contract" model="com.axelor.apps.contract.db.Contract">
<view type="form" name="contract-form"/>
<context name="_xTargetType" expr="eval:2"/>
<context name="_project" expr="eval:__self__"/>
</action-view>
<action-view name="action-project-dashlet-customer-contracts" title="Customer contracts" model="com.axelor.apps.contract.db.Contract">
<view type="grid" name="contract-grid"/>
<view type="form" name="contract-form"/>
<domain>self.project.id = :id AND self.targetTypeSelect = 1 AND self.statusSelect != 3</domain>
</action-view>
<action-view name="action-project-dashlet-supplier-contracts" title="Supplier contracts" model="com.axelor.apps.contract.db.Contract">
<view type="grid" name="contract-grid"/>
<view type="form" name="contract-form"/>
<domain>self.project.id = :id AND self.targetTypeSelect = 2 AND self.statusSelect != 3</domain>
</action-view>
<action-view name="action-project-dashlet-contract-invoices" title="Invoices" model="com.axelor.apps.account.db.Invoice">
<view type="grid" name="invoice-grid"/>
<view type="form" name="invoice-form"/>
<domain>self.contract.project.id = :_id</domain>
</action-view>
<action-view name="dashlet.task" title="Tasks" model="com.axelor.apps.project.db.Project">
<view type="grid" name="task-grid" />
<view type="form" name="task-form" />
</action-view>
</object-views>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="project-folder-grid" title="Projects Folder" model="com.axelor.apps.project.db.ProjectFolder">
<field name="name"/>
<field name="description" widget="html"/>
</grid>
<form title="Project Folder" name="project-folder-form" model="com.axelor.apps.project.db.ProjectFolder" width="large">
<menubar>
<menu title="Reports" showTitle="true" icon="fa-files-o">
<item title="Projects Planification and costs" action="action-project-folder-method-print-projects-planification-and-costs-report"/>
<item title="Projects Financial Report" action="action-project-folder-method-print-projects-financial-report"/>
</menu>
</menubar>
<panel name="mainPanel">
<field name="name" showTitle="false" colSpan="12" css="label-bold bold large"/>
<field name="description" colSpan="12" widget="html"/>
<field name="projectSet" colSpan="12" edit-window="blank" form-view="project-form" grid-view="folder-project-grid" canNew="false" canEdit="false"/>
</panel>
</form>
<action-method name="action-project-folder-method-print-projects-planification-and-costs-report">
<call class="com.axelor.apps.businessproject.web.ProjectFolderController" method="printProjectsPlanificationAndCost"/>
</action-method>
<action-method name="action-project-folder-method-print-projects-financial-report">
<call class="com.axelor.apps.businessproject.web.ProjectFolderController" method="printProjectsFinancialReport"/>
</action-method>
</object-views>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="project-status-grid" title="Status" model="com.axelor.apps.project.db.ProjectStatus">
<field name="name"/>
<field name="defaultStatus"/>
<field name="isOpen"/>
<field name="isClose"/>
</grid>
<form title="Status" name="project-status-form" model="com.axelor.apps.project.db.ProjectStatus">
<panel name="mainPanel">
<field name="name"/>
<field name="defaultStatus"/>
<field name="isOpen" readonlyIf="isClose == 1"/>
<field name="isClose" readonlyIf="isOpen == 1"/>
</panel>
</form>
</object-views>

View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="project-template-grid" model="com.axelor.apps.project.db.ProjectTemplate" title="Project template">
<field name="name"/>
<field name="assignedTo"/>
</grid>
<form name="project-template-form" title="Project template" model="com.axelor.apps.project.db.ProjectTemplate" onNew="action-project-group-on-new-project">
<panel name="mainPanel">
<panel name="informationPanel" colSpan="12">
<field name="fullName" showTitle="false" colSpan="12" css="label-bold bold large">
<editor x-show-titles="false">
<field name="name" showTitle="false" colSpan="9" css="label-bold bold large" />
</editor>
</field>
</panel>
<panel name="actionPanel" colSpan="6">
<button name="createProjectBtn" icon="fa-copy" title="Create project from this template" onClick="save,action-project-template-method-generate-project" hidden="true" showIf="!isBusinessProject" colSpan="12"/>
<button name="createBusinessProjectBtn" icon="fa-copy" title="Create business project from this template" onClick="save,action-project-template-method-generate-project" hidden="true" showIf="isBusinessProject" colSpan="12"/>
</panel>
</panel>
<panel name="detailsPanel">
<panel name="generalInfoPanel" colSpan="12">
<field name="company" form-view="company-form" grid-view="company-grid" colSpan="3" canEdit="false"/>
</panel>
<field name="description" colSpan="12" widget="html" />
</panel>
<panel-tabs name="mainPanelTab">
<panel title="Task template" name="taskPanel">
<field name="taskTemplateSet" widget="TagSelect" colSpan="12"/>
</panel>
<panel title="Members" name="membersPanel">
<field name="team" title="Team" readonlyIf="synchronize" colSpan="6" canNew="false" canEdit="false" />
<field name="synchronize" colSpan="2" widget="boolean-switch" />
<field name="membersUserSet" colSpan="12" widget="TagSelect" canNew="false" form-view="user-form" grid-view="user-grid" hideIf="synchronize" />
</panel>
<panel title="Invoicing" name="invoicingPanel" showIf="isBusinessProject" if="__config__.app.isApp('business-project')" if-module="axelor-business-project">
<field name="isInvoicingExpenses" colSpan="4" />
<field name="isInvoicingPurchases" colSpan="4" />
<field name="invoicingTypeSelect" colSpan="6"/>
<field name="invoicingComment" colSpan="12" />
</panel>
<panel title="Wiki" name="wikiPanel" >
<panel-related name="wikiListPanel" field="wikiList" colSpan="12" form-view="wiki-form" grid-view="wiki-grid-incl-project"/>
</panel>
<panel title="Configurations" name="configurationsPanel" >
<field if="__config__.app.isApp('employee')" if-module="axelor-human-resource" name="productSet" colSpan="12" widget="TagSelect" canEdit="false" domain="self.isActivity = true" form-view="product-activity-form" grid-view="product-activity-grid" />
<field name="teamTaskCategorySet" colSpan="12" widget="TagSelect" />
<field name="projectFolderSet" colSpan="12" widget="TagSelect" />
<field name="imputable" colSpan="4" widget="boolean-switch" if="__config__.app.isApp('employee')" if-module="axelor-human-resource" />
<field name="excludePlanning" if-module="axelor-business-project"/>
</panel>
</panel-tabs>
<panel name="characteristicsPanel" title="Characteristics" if="__config__.app.isApp('business-project')" if-module="axelor-business-project" colSpan="12" sidebar="true" canCollapse="true">
<field name="isBusinessProject" colSpan="6" widget="boolean-switch"/>
<field name="$toInvoiceCounter" showTitle="false" hidden="true" colSpan="6" />
</panel>
<panel name="followUpPanel" colSpan="12" title="Follow-up" sidebar="true" canCollapse="true">
<field name="assignedTo" title="Person In Charge" canNew="false" canView="false" canEdit="false" onChange="action-attrs-project-add-member" form-view="user-form" grid-view="user-grid" />
</panel>
</form>
<form model="com.axelor.apps.base.db.Wizard" title="Create project from this template" name="project-template-wizard-form" onNew="action-attrs-project-template-set-wizard-hidden" onLoad="action-attrs-project-template-set-wizard-hidden">
<panel name="mainPanel" colSpan="12">
<panel name="infoPanel" colSpan="12">
<field name="code" title="Code" type="string" required="true"/>
<field name="clientPartner" title="Customer" type="many-to-one" target="com.axelor.apps.base.db.Partner" domain="self.isCustomer = true" required="true"/>
</panel>
<button name="createBusinessProjectBtn" title="Create business project from this template" colSpan="5" readonlyIf="!clientPartner" onClick="action-project-template-method-generate-project-from-wizard"/>
<spacer name="createProjectBtnSpacer" />
<button name="createProjectBtn" title="Create project from this template" colSpan="5" readonlyIf="!code" onClick="action-project-template-method-generate-project-from-wizard"/>
</panel>
</form>
<action-method name="action-project-template-method-generate-project">
<call class="com.axelor.apps.project.web.ProjectTemplateController" method="createProjectFromTemplate"/>
</action-method>
<action-method name="action-project-template-method-generate-project-from-wizard">
<call class="com.axelor.apps.project.web.ProjectTemplateController" method="createProjectFromWizard"/>
</action-method>
<action-attrs name="action-attrs-project-template-set-wizard-hidden">
<attribute name="hidden" expr="eval:!_businessProject" for="clientPartner"/>
<attribute name="hidden" expr="eval:__config__.app.getApp('project')?.generateProjectSequence" for="code"/>
<attribute name="hidden" expr="eval:!_businessProject" for="createBusinessProjectBtn"/>
<attribute name="hidden" expr="eval:_businessProject" for="createProjectBtn"/>
</action-attrs>
</object-views>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="resource-grid" title="Resources" model="com.axelor.apps.project.db.Resource">
<field name="name"/>
<field name="resourceType"/>
<field name="batchNo"/>
</grid>
<form name="resource-form" title="Resource" model="com.axelor.apps.project.db.Resource" width="large">
<toolbar>
<button name="bookResourceBtn" title="Book resource" onClick="save,action-resource-book-resource"/>
</toolbar>
<panel name="mainPanel">
<panel name="imagePanel" colSpan="2" itemSpan="12">
<field name="resourceImage" widget="Image"/>
</panel>
<panel name="detailsPanel" colSpan="6" itemSpan="12">
<field name="name"/>
<field name="resourceType"/>
<field name="batchNo" />
</panel>
</panel>
</form>
<action-view name="action-resource-book-resource" title="Book resource" model="com.axelor.apps.project.db.ResourceBooking">
<view type="form" name="resource-booking-form" />
<view type="grid" name="resource-booking-grid" />
<view type="calendar" name="resource-booking-calendar" />
<context name="_resource" expr="eval:__self__"/>
</action-view>
</object-views>

View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="resource-booking-grid" title="Resource bookings" model="com.axelor.apps.project.db.ResourceBooking">
<field name="name"/>
<field name="resource"/>
<field name="project"/>
<field name="task"/>
<field name="user"/>
<field name="fromDate"/>
<field name="toDate"/>
</grid>
<form name="resource-booking-form" title="Resource booking" model="com.axelor.apps.project.db.ResourceBooking" width="large" onNew="action-resource-booking-defaults">
<panel name="mainPanel">
<panel name="namePanel" colSpan="12">
<field name="name" colSpan="12" css="label-bold bold large"/>
<static name="nameLabel" hideIf="id" colSpan="12"><![CDATA[<span class='label label-info'>Computed automatically if left empty</span>]]></static>
</panel>
<field name="resource" canEdit="false"/>
<field name="user" canEdit="false"/>
<field name="project" canEdit="false"/>
<field name="task" canEdit="false" onChange="action-resource-booking-attrs-update-period" domain="self.project = :project"/>
<field name="fromDate" colSpan="4"/>
<field name="toDate" colSpan="4"/>
<field name="updateTaskFromPeriod" onChange="action-resource-booking-attrs-update-period" colSpan="4"/>
<field name="notes" colSpan="12"/>
</panel>
</form>
<grid name="resource-booking-grid-incl-project" title="Resource booking" model="com.axelor.apps.project.db.ResourceBooking">
<field name="name"/>
<field name="resource"/>
<field name="task"/>
<field name="user"/>
<field name="fromDate"/>
<field name="toDate"/>
</grid>
<calendar name="resource-booking-calendar" model="com.axelor.apps.project.db.ResourceBooking" eventStart="fromDate" title="Resource booking" eventStop="toDate" colorBy="resource">
<field name="project"/>
</calendar>
<action-record name="action-resource-booking-defaults" model="com.axelor.apps.project.db.ResourceBooking">
<field name="project" expr="eval:_project" if="_project != null"/>
<field name="task" expr="eval:_task" if="_task != null"/>
<field name="resource" expr="eval:_resource" if="_resource != null"/>
<field name="user" expr="eval:__user__" />
</action-record>
<action-attrs name="action-resource-booking-attrs-update-period" model="com.axelor.apps.project.db.ResourceBooking">
<attribute name="value" expr="#{updateTaskFromPeriod ? task.taskDate.atStartOfDay() : null}" for="fromDate"/>
<attribute name="readonly" expr="#{updateTaskFromPeriod}" for="fromDate"/>
<attribute name="value" expr="#{updateTaskFromPeriod ? task.taskEndDate.atStartOfDay() : null}" for="toDate"/>
<attribute name="readonly" expr="#{updateTaskFromPeriod}" for="toDate"/>
</action-attrs>
</object-views>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="resource-type-grid" title="Resource types" model="com.axelor.apps.project.db.ResourceType" width="large">
<field name="name"/>
</grid>
<form name="resource-type-form" title="Resource type" model="com.axelor.apps.project.db.ResourceType">
<panel name="namePanel">
<field name="name"/>
</panel>
</form>
</object-views>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<selection name="project.type.select">
<option value="1">Project</option>
<option value="2">Project Phase</option>
</selection>
<selection name="project.status.select">
<option value="1">New</option>
<option value="2">In Progress</option>
<option value="3">Finished</option>
<option value="4">Canceled</option>
</selection>
<selection name="message.related.to.select" id="project.message.related.to.select">
<option value="com.axelor.apps.project.db.Project">Project</option>
</selection>
<selection name="crm.event.related.to.select" id="project.crm.event.related.to.select">
<option value="com.axelor.apps.project.db.Project">Project/Business (Project)</option>
</selection>
<selection name="project.task.progress.select">
<option value="0">0 %</option>
<option value="10">10 %</option>
<option value="20">20 %</option>
<option value="30">30 %</option>
<option value="40">40 %</option>
<option value="50">50 %</option>
<option value="60">60 %</option>
<option value="70">70 %</option>
<option value="80">80 %</option>
<option value="90">90 %</option>
<option value="100">100 %</option>
</selection>
<selection name="project.project.project.type.select">
<option value="1">Project</option>
<option value="2">Project phase</option>
</selection>
<selection name="sequence.generic.code.select" id="project.sequence.generic.code.select">
<option value="project">Project</option>
</selection>
</object-views>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="task-template-grid" title="Task template" model="com.axelor.apps.project.db.TaskTemplate">
<field name="name"/>
<field name="assignedTo"/>
<field name="team"/>
<field name="delayToStart"/>
<field name="duration"/>
<field name="totalPlannedHrs"/>
<field name="isUniqueTaskForMultipleQuantity"/>
</grid>
<form name="task-template-form" title="Task template" model="com.axelor.apps.project.db.TaskTemplate" width="large">
<panel name="mainPanel">
<field name="name" colSpan="12" css="label-bold bold large"/>
<field name="delayToStart"/>
<field name="duration"/>
<field name="totalPlannedHrs"/>
<field name="assignedTo" canEdit="false"/>
<field name="team" canEdit="false"/>
<field name="isUniqueTaskForMultipleQuantity" widget="boolean-switch"/>
</panel>
<panel name="contentPanel" title="Description" colSpan="12">
<field name="description" showTitle="false" colSpan="12" widget="html"/>
</panel>
<panel if="__config__.app.isApp('business-support')" if-module="axelor-business-support" name="internalDescriptionPanel" title="Internal Description">
<field name="internalDescription" colSpan="12" widget="html"/>
</panel>
</form>
</object-views>

View File

@ -0,0 +1,532 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid id="project-team-task-grid" name="team-task-grid" title="Tasks" model="com.axelor.team.db.TeamTask" edit-icon="true" orderBy="taskDate, priority">
<hilite if="status == 'closed'" color="success"/>
<hilite if="$moment(taskEndDate).diff(todayDate,'days') &lt; 0" color="danger"/>
<hilite if="priority == 'urgent'" color="warning"/>
<field name="name"/>
<field name="project"/>
<field name="taskDate"/>
<field name="taskEndDate" hidden="true"/>
<field name="status"/>
<field name="priority"/>
<field name="teamTaskCategory"/>
<field name="targetVersion" if-module="axelor-business-support" if="__config__.app.isApp('business-support')"/>
<button name="timeSpentBtn" title="Enter Time spent" icon="fa-clock-o" onClick="action-team-task-view-time-spent" />
</grid>
<form name="team-task-form" id="project-team-task-form" title="Task" model="com.axelor.team.db.TeamTask"
onNew="action-team-task-group-onnew"
onLoad="action-team-task-group-timer-process" width="large">
<toolbar>
<button name="grabEventBtn" icon="fa-suitcase" help="Take charge" onClick="action-team-task-record-assigned-yourself,save"/>
<button name="startBtn" icon="fa-play" onClick="action-team-task-record-status-in-progress,save"/>
<button name="acceptBtn" icon="fa-check" onClick="action-team-task-record-status-closed,save"/>
<button name="stopBtn" icon="fa-power-off" onClick="action-team-task-record-status-canceled,save"/>
</toolbar>
<menubar>
<menu name="teamTaskMenu" title="Tools">
<item name="bookResourceItem" title="Book resource" action="save,action-task-book-resource"/>
</menu>
</menubar>
<panel showIf="nextTeamTask">
<field name="doApplyToAllNextTasks" widget="InlineCheckbox" colSpan="12"/>
</panel>
<panel name="mainPanel" colSpan="12">
<field name="status" colSpan="6" required="true" widget="NavSelect" showTitle="false"/>
<panel name="viewerTagsPanel" colSpan="4">
<field name="$viewerTags" showTitle="false" readonly="true" showIf="typeSelect == 'ticket' &amp;&amp; $readonly()" colSpan="12" if-module="axelor-business-support" if="__config__.app.isApp('business-support')" hidden="true">
<viewer>
<![CDATA[
<h4 class="text-right">
<span class="label label-important" ng-show="record.assignment == 1" x-translate>Task assigned to the client</span>
<span class="label label-success" ng-show="record.assignment == 2 && record.$provider == null" x-translate>Task assigned to the provider</span>
<span class="label label-success" style="background-color: #5cb85c; margin: 5px 0 !important; display: inline-table; line-height: initial; border-top-right-radius: 0; border-bottom-right-radius: 0; padding-right: 0.3em;" ng-show="record.assignment == 2 && record.$provider != null" x-translate>Task assigned to</span><span class="label label-success" style="background-color: #5cb85c; margin: 5px 0 !important; display: inline-table; line-height: initial; border-top-left-radius: 0; border-bottom-left-radius: 0; padding-left: 0.0em;" ng-show="record.assignment == 2 && record.$provider != null">{{record.$provider}}</span>
<span class="label label-important" ng-show="(!record.isOrderAccepted && record.invoicingType == 2 && record.exTaxTotal != 0) || (!record.isOrderAccepted && record.invoicingType == 1)" x-translate>Order Proposed</span>
<span class="label label-success" ng-show="record.isOrderAccepted" x-translate>Order Accepted</span>
</h4>
]]>
</viewer>
</field>
</panel>
<button name="timeSpentBtn" title="Enter Time spent" onClick="save,action-team-task-view-time-spent" colSpan="2"/>
<field name="$provider" hidden="true" type="string"/>
<panel name="projectDetailsPanel" colSpan="12">
<panel name="detailsPanel" colSpan="8">
<field name="fullName" showTitle="false" colSpan="12">
<viewer depends="name">
<![CDATA[
<h3>
<span style="margin: 5px 0 !important; display: inline-table; line-height: initial;">{{record.name}}</span>
</h3>
]]>
</viewer>
<editor>
<field name="name" title="Subject" colSpan="12" css="label-bold bold large" required="true"/>
</editor>
</field>
<field name="project" colSpan="6" onChange="action-team-task-group-project-onchange" required="true"/>
<field name="parentTask" readonlyIf="project == null" colSpan="6" onSelect="action-task-attrs-project-parent-task-configurations"/>
<field name="assignedTo" readonlyIf="project == null" colSpan="6" canNew="false" canView="false" canEdit="false" onSelect="action-task-attrs-project-assigned-to-configurations" required="true" form-view="user-form" grid-view="user-grid"/>
<field name="team" readonly="true" colSpan="6" form-view="team-form" grid-view="team-grid" if="!__config__.app.isApp('business-support')"/>
<field name="customerReferral" onSelect="action-task-attrs-customer-referral-domain" hidden="true" showIf="typeSelect == 'ticket'" if="__config__.app.isApp('business-project')"/>
<field name="isPrivate" hidden="true" showIf="typeSelect == 'ticket'" colSpan="6" if-module="axelor-business-support" if="__config__.app.isApp('business-support')"/>
<field name="isOrderAccepted" colSpan="3" hidden="true" showIf="typeSelect == 'ticket'" if-module="axelor-business-support" if="__config__.app.isApp('business-support')"/>
<field name="isOrderProposed" hidden="true" colSpan="3" if-module="axelor-business-support" if="__config__.app.isApp('business-support')"/>
</panel>
<panel name="actionPanel" colSpan="4">
<button name="acceptOrderBtn" title="Accept Order" hidden="true" hideIf="invoicingType != 1 || isOrderAccepted || typeSelect != 'ticket'" onClick="action-task-attrs-onclick-order-accepted,save" colSpan="12" if-module="axelor-business-support" if="__config__.app.isApp('business-support')"/>
<button name="assigningProviderBtn" colSpan="12" title="Assigning to the provider" hidden="true" onClick="action-team-task-attrs-assginment-provider,save" if-module="axelor-business-support" if="__config__.app.isApp('business-support')" showIf="assignment == 1 &amp;&amp; typeSelect == 'ticket'"/>
<button name="assigningCustomerBtn" colSpan="12" title="Assigning to the customer" hidden="true" onClick="action-team-task-attrs-assginment-customer,save" if-module="axelor-business-support" if="__config__.app.isApp('business-support')" showIf="assignment == 2 &amp;&amp; typeSelect == 'ticket'"/>
</panel>
</panel>
<panel name="characteristicsPanel" title="Characteristics" colSpan="12">
<field name="teamTaskCategory" colSpan="4" onSelect="action-task-attrs-team-task-category-configurations" onChange="action-team-task-group-project-category-onchange"/>
<field name="priority" colSpan="4" required="true"/>
<field name="targetVersion" if-module="axelor-business-support" if="__config__.app.isApp('business-support')" domain="self.project = :project OR self.project.parentProject = :project" colSpan="4" form-view="project-version-form" grid-view="project-version-grid"/>
<field name="assignment" hidden="true" showIf="typeSelect == 'ticket'" if-module="axelor-business-support" if="__config__.app.isApp('business-support')" colSpan="4"/>
<field name="taskDate" title="Task date" colSpan="4" onChange="action-task-attrs-set-task-duration,action-team-task-record-set-date-or-frequency-changed" required="true"/>
<field name="taskEndDate" colSpan="4" onChange="action-task-attrs-set-task-duration"/>
<field name="taskDeadline" title="Task deadline" colSpan="4" if="!__config__.app.isApp('business-support')"/>
<field name="progressSelect" colSpan="12" widget="SelectProgress" onChange="action-task-update-planned-progress"/>
</panel>
<field name="typeSelect" hidden="true"/>
</panel>
<panel-tabs name="mainPanelTab">
<panel name="contentPanel" title="Description" colSpan="12">
<field name="description" showTitle="false" colSpan="12" widget="html"/>
</panel>
<panel name="internalDescriptionPanel" title="Internal Description" if="__config__.app.isApp('business-support')" if-module="axelor-business-support">
<field name="internalDescription" colSpan="12" widget="html"/>
</panel>
<panel name="planningPanel" title="Planning" if="__config__.app.isApp('employee')" if-module="axelor-human-resource">
<field name="totalPlannedHrs" readonly="true" colSpan="4">
<viewer><![CDATA[
<span>{{record.totalPlannedHrs}} </span><span x-translate>hours</span>
]]></viewer>
</field>
<field name="budgetedTime" colSpan="4">
<viewer><![CDATA[
<span>{{record.budgetedTime}} </span><span x-translate>hours</span>
]]></viewer>
</field>
<spacer name="budgetedTimeSpacer" colSpan="4" />
<button name="addMultipleLinesBtn" title="Add multiple lines" css="btn-custom text-left" onClick="save,action-project-view-add-multiple-project-planning-time" colSpan="3" hideIf="$popup()"/>
<button name="projectPlanningTimeLineBtn" title="New line" colSpan="3" css="btn-custom text-left" onClick="save,action-team-task-view-time-planned,save"/>
<button name="removeProjectPlanningTimeLineBtn" title="Remove lines" css="btn-custom text-left" colSpan="3" onClick="save,action-team-task-attrs-project-planning-time-remove,save" />
<field name="$projectPlanningTimeSet" hidden="true" type="many-to-many" widget="TagSelect" title="Planned Time Planning"
colSpan="12" target="com.axelor.apps.project.db.ProjectPlanningTime" canEdit="false" canNew="false" grid-view="project-planning-time-grid" form-view="project-planning-time-form"/>
<button name="removeSelectedPlanningTimeBtn" colSpan="3" hidden="true" title="Remove selected lines" onClick="action-project-validate-remove-project-planning-time,action-project-planning-time-method-remove-project-planning-time"/>
<button name="cancelRemovePlanningTimeBtn" colSpan="3" hidden="true" title="Cancel" onClick="action-project-attrs-project-planning-time-cancel-remove" />
<panel-dashlet name="projectPlanningTimePanel" title="Planned Time Planning" action="action-team-task-dashlet-project-planning-time" colSpan="12" canSearch="true"/>
<field name="plannedProgress" hidden="true" colSpan="12" widget="progress"/>
</panel>
<panel name="treeViewPanel" title="Tree view" colSpan="12">
<panel-dashlet name="taskTreePanel" title="Task Tree" colSpan="12" action="action-view-show-task-tree"/>
<panel-related name="finishToStartSetPanel" field="finishToStartSet" colSpan="12">
<field name="name"/>
</panel-related>
</panel>
<panel name="financialDataPanel" title="Financial Data" colSpan="12">
<field name="invoicingType" colspan="6" if="__config__.app.isApp('business-project')" if-module="axelor-business-project" onChange="action-team-task-attrs-invoice-type-on-change"/>
<field name="toInvoice" colSpan="2" readonlyIf="invoiced" if="__config__.app.isApp('business-project')" if-module="axelor-business-project"/>
<field name="isPaid" showIf="project.invoicingSequenceSelect == 1" if="__config__.app.isApp('business-project')" if-module="axelor-business-project" colSpan="1"/>
<field name="isTaskRefused" if="__config__.app.isApp('business-project')" if-module="axelor-business-project" colSpan="1"/>
<field if="__config__.app.isApp('business-project')" if-module="axelor-business-project" name="invoiced" showIf="id &amp;&amp; !($readonly())" colSpan="1"/>
<field if="__config__.app.isApp('business-project')" if-module="axelor-business-project" name="invoiced" showIf="id &amp;&amp; $readonly()" showTitle="false" colSpan="1" >
<viewer><![CDATA[
<h4 class="text-right">
<span class="label label-success" ng-show="record.invoiced" x-translate>Invoiced</span>
<span class="label label-important" ng-show="!record.invoiced" x-translate>Not invoiced</span>
</h4>
]]></viewer>
</field>
<field name="project.invoicingSequenceSelect" hidden="true"/>
<field name="saleOrderLine" readonly="true" showIf="saleOrderLine" form-view="sale-order-line-form" grid-view="sale-order-line-grid"/>
<field name="invoiceLine" readonly="true" showIf="invoiceLine" form-view="invoice-line-form" grid-view="invoice-line-grid"/>
<panel name="packagePanel" title="Package" colSpan="12" showIf="invoicingType == 2">
<field name="product" colSpan="6" canEdit="false" onChange="action-team-task-group-product-onchange" domain="self.unit.unitTypeSelect=3" form-view="product-form" grid-view="product-grid"/>
<field name="quantity" colSpan="3" onChange="action-team-task-group-qty-onchange"/>
<field name="unit" colSpan="3" domain="self.unitTypeSelect=3" form-view="unit-form" grid-view="unit-grid" canEdit="false"/>
<field name="unitPrice" colSpan="3" onChange="action-team-task-group-unit-price-onchange"/>
<field name="currency" colSpan="3" grid-view="currency-grid" form-view="currency-form" canEdit="false"/>
<panel name="discountPanel" readonly="true" colSpan="12" hideIf="discountTypeSelect == 3 || discountTypeSelect == 0" if="__config__.app.isApp('business-project')" if-module="axelor-business-project">
<field name="discountTypeSelect" colSpan="3" onChange="action-sale-order-line-attrs-discountamount-title"/>
<field name="discountAmount" colSpan="3"/>
<field name="priceDiscounted" colSpan="3"/>
</panel>
<field name="exTaxTotal" readonly="true" colSpan="3"/>
</panel>
<field if="__config__.app.getApp('project').isEnableSignature" name="metaFile" width="120" widget="Image" />
</panel>
<panel name="frequencyPanel" title="Frequency">
<field name="frequency" onChange="action-team-task-record-set-date-or-frequency-changed" domain="1 &lt;&gt; 1" canNew="true" grid-view="frequency-grid" form-view="frequency-form"/>
<field name="nextTeamTask" hidden="true" showIf="nextTeamTask"/>
<field name="isFirst" hidden="true"/>
<field name="doUpdateNextTasks" hidden="true"/>
<field name="hasDateOrFrequencyChanged" hidden="true"/>
</panel>
<panel name="timeSpentPanel" title="Time Spent">
<field name="totalRealHrs" readonly="true" colSpan="4">
<viewer><![CDATA[
<span>{{record.totalRealHrs}} </span><span x-translate>hours</span>
]]></viewer>
</field>
<panel-dashlet name="validatedTimesheetLinesPanel" action="action-teamtask-dashlet-validated-timeshet-lines" title="Validated Timesheet lines" colSpan="12" canSearch="true"/>
<panel-dashlet name="waitingTimesheetLinesPanel" action="action-teamtask-dashlet-waiting-timeshet-lines" title="Waiting Timesheet lines" colSpan="12" canSearch="true"/>
</panel>
<panel name="timerPanel" title="Timer" showIf="id" hidden="true">
<panel name="actionsPanel" title="Actions">
<button name="startTimerBtn" title="Start" icon="fa-play" colSpan="12" hidden="true"
onClick="action-team-task-method-start-timer"/>
<button name="stopTimerBtn" title="Stop" icon="fa-pause" colSpan="12" hidden="true"
onClick="action-team-task-method-stop-timer"/>
<button name="cancelTimerBtn" title="Cancel" icon="fa-times-circle" colSpan="12"
hidden="true" onClick="action-team-task-method-cancel-timer"/>
</panel>
<panel name="durationPanel">
<field name="$_totalTimerDuration" type="decimal" readonly="true"
title="Total duration (Hours)"
colSpan="12"/>
</panel>
</panel>
</panel-tabs>
<panel-mail name="mailPanel">
<mail-messages/>
<mail-followers/>
</panel-mail>
</form>
<gantt name="task-gantt" title="Tasks" model="com.axelor.team.db.TeamTask"
taskStart="taskDate" taskEnd="taskEndDate" taskDuration="durationHours" taskParent="parentTask" taskSequence="sequence"
taskProgress="plannedProgress" x-start-to-start="startToStartSet" x-finish-to-start="finishToStartSet"
x-finish-to-finish="finishToFinishSet"
taskUser="assignedTo">
<field name="name"/>
</gantt>
<gantt name="project-task-gantt" title="Project Task"
model="com.axelor.team.db.TeamTask" taskStart="taskDate" taskEnd="taskEndDate" taskDuration="durationHours" taskParent="parentTask" taskSequence="sequence"
taskProgress="plannedProgress" x-start-to-start="startToStartSet" x-finish-to-start="finishToStartSet"
x-finish-to-finish="finishToFinishSet">
<field name="name" />
<field name="project"/>
</gantt>
<gantt name="user-task-gantt" title="User Task"
model="com.axelor.team.db.TeamTask" taskStart="taskDate" taskEnd="taskEndDate" taskDuration="durationHours" taskParent="parentTask" taskSequence="sequence"
taskProgress="plannedProgress" x-start-to-start="startToStartSet" x-finish-to-start="finishToStartSet"
x-finish-to-finish="finishToFinishSet">
<field name="name" />
<field name="assignedTo" />
</gantt>
<action-view name="action-view-show-task-tree" title="Task Tree" model="com.axelor.team.db.TeamTask">
<view type="tree" name="task-tree"/>
<view type="form" name="team-task-form"/>
<domain>self.id = :_id</domain>
<context name="_id" expr="eval: id"/>
</action-view>
<tree name="task-tree" title="Tasks">
<column name="name" type="string"/>
<column name="assignedTo" type="reference"/>
<column name="progress" type="decimal"/>
<node model="com.axelor.team.db.TeamTask" domain="self.id = :_id" onClick="action-team-task-view-task">
<field name="name" as="name"/>
<field name="assignedTo" as="assignedTo"/>
<field name="progressSelect" as="progress" />
</node>
<node model="com.axelor.team.db.TeamTask" parent="parentTask" draggable="true" onClick="action-team-task-view-task">
<field name="name" as="name"/>
<field name="assignedTo" as="assignedTo"/>
<field name="progressSelect" as="progress"/>
</node>
</tree>
<kanban name="team-task-kanban" columnBy="status" title="Tasks" limit="30" sequenceBy="sequence" model="com.axelor.team.db.TeamTask">
<field name="name"/>
<field name="project"/>
<field name="status"/>
<field name="assignedTo"/>
<field name="taskDate"/>
<field name="taskDeadline"/>
<field name="priority"/>
<field name="progressSelect"/>
<hilite color="success" if="(taskDeadline == null || $moment(taskDeadline).diff(todayDate,'days') &gt;= 0) &amp;&amp; status != 'closed'"/>
<hilite color="danger" if="$moment(taskDeadline).diff(todayDate,'days') &lt; 0 &amp;&amp; status != 'closed'"/>
<hilite color="info" if="status == 'closed'"/>
<template>
<![CDATA[
<h4>{{name}}</h4>
<h4><span style="font-weight:normal;">{{project.fullName}}</span></h4>
<img ng-if="assignedTo" ng-src="{{$image('assignedTo', 'image')}}">
<div class="card-body">
<div>
<i class="fa fa-calendar" aria-hidden="true"></i>
<span ng-if="!taskDeadline"> <span x-translate>Not specified</span> </span>
<span ng-if="$moment(taskDeadline).isSame($moment().subtract(1, 'days'), 'day')"> <span x-translate>Deadline Yesterday</span> </span>
<span ng-if="$moment(taskDeadline).isSame($moment(), 'day')"> <span x-translate>Deadline Today</span> </span>
<span ng-if="$moment(taskDeadline).isSame($moment().add(1, 'days'), 'day')"> <span x-translate>Deadline Tomorrow</span> </span>
<span ng-if="$moment(taskDeadline).isAfter($moment().add(1, 'days'), 'days')"> <span x-translate>Deadline</span> {{ $moment().to($moment(taskDeadline), false) }}</span>
<span ng-if="$moment(taskDeadline).isBefore($moment().subtract(1, 'days'), 'days')"> <span x-translate>Deadline</span> {{ $moment(taskDeadline).from($moment(), false) }}</span>
<span class="label label-success pull-right" ng-if="priority == 'low'" x-translate>Low</span>
<span class="label label-info pull-right" ng-if="priority == 'normal'" x-translate>Normal</span>
<span class="label label-warning pull-right" ng-if="priority == 'high'" x-translate>High</span>
<span class="label label-important pull-right" ng-if="priority == 'urgent'" x-translate>Urgent</span>
</div>
<div class="progress kanban-progress">
<span ng-if="progressSelect == 0">{{ progressSelect }}%</span>
<div class="bar" style="width: {{ progressSelect }}%;">{{ progressSelect }}%</div>
</div>
</div>
<div class="card-footer">
<i class='fa fa-clock-o'></i> <span ng-if="taskDate">{{taskDate | date:'dd/MM/yyyy'}}</span><span ng-if="!taskDate" x-translate>Not specified</span>
</div>
]]>
</template>
</kanban>
<action-group name="action-team-task-group-onnew" id="action-team-task-group-project-onnew">
<action name="action-task-defaults"/>
<action name="action-team-task-record-set-default"/>
<action name="action-team-task-attrs-scale-and-precision" if="__config__.app.isApp('business-project')"/>
<action name="action-task-record-project-configurations" if="project != null"/>
<action name="action-team-task-business-support-provider" if="__config__.app.isApp('business-support')"/>
</action-group>
<action-group name="action-team-task-group-project-onchange">
<action name="action-task-record-project-configurations"/>
<action name="action-team-task-method-update-discount" if="__config__.app.isApp('business-project')"/>
<action name="action-team-task-method-compute" if="__config__.app.isApp('business-project')"/>
</action-group>
<action-group name="action-team-task-group-product-onchange">
<action name="action-team-task-record-product-selected"/>
<action name="action-team-task-method-update-discount" if="__config__.app.isApp('business-project')"/>
<action name="action-team-task-method-compute" if="__config__.app.isApp('business-project')"/>
</action-group>
<action-group name="action-team-task-group-qty-onchange">
<action name="action-team-task-method-update-discount" if="__config__.app.isApp('business-project')"/>
<action name="action-team-task-method-compute" if="__config__.app.isApp('business-project')"/>
</action-group>
<action-group name="action-team-task-group-unit-price-onchange">
<action name="action-team-task-method-compute" if="__config__.app.isApp('business-project')"/>
</action-group>
<action-view name="action-team-task-view-task" title="Tasks" model="com.axelor.team.db.TeamTask">
<view type="form" name="team-task-form"/>
<view-param name="popup" value="reload"/>
<view-param name="show-toolbar" value="true"/>
<view-param name="show-confirm" value="true" />
<context name="_showRecord" expr="eval: id"/>
</action-view>
<action-view name="action-team-task-open-task" title="Task" model="com.axelor.team.db.TeamTask">
<view type="form" name="team-task-form"/>
<context name="_showRecord" expr="eval: id"/>
</action-view>
<action-view name="action-team-task-edit-task" title="Task" model="com.axelor.team.db.TeamTask">
<view type="form" name="team-task-form"/>
<view-param name="popup" value="reload"/>
<view-param name="show-toolbar" value="true"/>
<view-param name="forceEdit" value="true" />
<context name="_showRecord" expr="eval: id"/>
</action-view>
<action-view name="action-team-task-view-time-planned" title="Planned Time Planning" model="com.axelor.apps.project.db.ProjectPlanningTime">
<view type="form" name="project-planning-time-form"/>
<view-param name="popup" value="reload"/>
<view-param name="show-toolbar" value="false"/>
<view-param name="forceEdit" value="true"/>
<view-param name="forceTitle" value="true"/>
<context name="_timePlannedPopup" expr="eval: true"/>
<context name="_task" expr="eval: __self__"/>
<context name="_project" expr="eval: project"/>
</action-view>
<action-record name="action-task-record-project-configurations" model="com.axelor.team.db.TeamTask">
<field name="teamTaskCategory" expr="eval: null"/>
<field name="assignedTo" expr="eval:(project?.membersUserSet ? project?.membersUserSet?.collect{it.id}.contains(assignedTo.id) : __repo__(Project).find(project?.id).membersUserSet?.collect{it.id}.contains(assignedTo.id)) ? assignedTo : null" if="project != null &amp;&amp; assignedTo != null"/>
<field name="membersUserSet" expr="eval: null"/>
<field name="team" expr="eval: project?.team" if="project?.synchronize &amp;&amp; project.team != null"/>
<field name="team" expr="eval: __repo__(Project).find(project?.parentProject?.id)?.team" if="(!project?.synchronize || project.team == null) &amp;&amp; project?.extendsMembersFromParent &amp;&amp; __repo__(Project).find(project?.parentProject?.id)?.synchronize"/>
<field name="invoicingType" expr="eval: 2" if="project?.invoicingSequenceSelect == 1"/>
</action-record>
<action-record name="action-task-defaults" model="com.axelor.team.db.TeamTask">
<field name="name" expr="eval: _value" if="_value"/>
<field name="assignedTo" expr="eval:__user__" />
<field name="priority" expr="normal" />
<field name="status" expr="new" />
<field name="taskDate" expr="#{__date__}" />
<field name="project" expr="eval:_project" />
<field name="customerReferral" expr="eval: __user__" if="__user__?.roles.contains(__repo__(Role).all().filter('self.name=?','role.customer').fetchOne())"/>
<field name="assignment" expr="eval:2"/>
</action-record>
<action-record name="action-team-task-business-support-provider" model="com.axelor.team.db.TeamTask">
<field name="$provider" expr="eval: __config__.app.getApp('business-support').providerCompany.name" if="__config__.app.getApp('business-support').providerCompany"/>
</action-record>
<action-record name="action-task-update-planned-progress" model="com.axelor.team.db.TeamTask">
<field name="plannedProgress" expr="eval: progressSelect"/>
</action-record>
<action-attrs name="action-task-attrs-team-task-category-configurations" model="com.axelor.team.db.TeamTask">
<attribute name="domain" for="teamTaskCategory" expr="eval: (project?.teamTaskCategorySet != null &amp;&amp; project?.teamTaskCategorySet?.size() &gt; 0) ? &quot;self.id IN (${project?.teamTaskCategorySet?.collect{it.id}?.join(',')})&quot; : &quot;self.id IN (null)&quot;"/>
</action-attrs>
<action-attrs name="action-task-attrs-project-assigned-to-configurations" model="com.axelor.team.db.TeamTask">
<attribute name="domain" expr="eval: (project?.membersUserSet != null &amp;&amp; project?.membersUserSet?.size() &gt; 0) ? &quot;self.id IN(${project?.membersUserSet?.collect{it.id}?.join(',')})&quot; : &quot;self.id IN (null)&quot;" for="assignedTo"/>
</action-attrs>
<action-attrs name="action-task-attrs-project-parent-task-configurations" model="com.axelor.team.db.TeamTask">
<attribute name="domain" expr="eval: (project?.teamTaskList !=null &amp;&amp; project?.teamTaskList?.size() > 0 ) ? &quot;self.id != ${id} AND self.id IN(${project?.teamTaskList?.collect{it.id}?.join(',')})&quot; : &quot;self.id IN (null)&quot;" for="parentTask"/>
</action-attrs>
<action-attrs name="action-task-attrs-project-members-user-set-configurations" model="com.axelor.team.db.TeamTask">
<attribute name="domain" expr="eval: (project?.membersUserSet != null &amp;&amp; project?.membersUserSet?.size() &gt; 0) ? &quot;self.id IN (${project?.membersUserSet?.collect{it.id}?.join(',')})&quot; : &quot;self.id IN (null)&quot;" for="membersUserSet"/>
</action-attrs>
<action-attrs name="action-task-attrs-set-task-duration">
<attribute name="value" for="taskDuration" expr="eval:java.time.temporal.ChronoUnit.DAYS.between(taskDate, taskEndDate)*86400" if="taskDate != null &amp;&amp; taskEndDate != null"/>
</action-attrs>
<action-attrs name="action-task-attrs-set-dates">
<attribute name="value" for="taskEndDate" expr="eval:taskDate.plus((taskDuration/86400).longValue(), java.time.temporal.ChronoUnit.DAYS)" if="taskDate != null"/>
</action-attrs>
<action-attrs name="action-task-attrs-onclick-order-accepted">
<attribute name="value" for="isOrderAccepted" expr="eval:true"/>
<attribute name="value" for="assignment" expr="eval:2"/>
<attribute name="hidden" for="acceptOrderBtn" expr="eval:true"/>
</action-attrs>
<action-attrs name="action-task-attrs-customer-referral-domain">
<attribute name="domain" for="customerReferral" expr="eval: &quot; (SELECT role FROM Role role WHERE role.name='role.customer') MEMBER OF self.roles AND self.id IN (SELECT userSet.id FROM Project p INNER JOIN p.membersUserSet userSet WHERE p.id = ${project?.id}) &quot;"/>
</action-attrs>
<action-view name="action-task-book-resource" title="Book resource" model="com.axelor.apps.project.db.ResourceBooking">
<view type="form" name="resource-booking-form" />
<view type="grid" name="resource-booking-grid" />
<view type="calendar" name="resource-booking-calendar" />
<context name="_project" expr="eval:__self__.project"/>
<context name="_task" expr="eval:__self__"/>
</action-view>
<action-record name="action-team-task-record-assigned-yourself" model="com.axelor.team.db.TeamTask">
<field name="assignedTo" expr="eval: __user__"/>
</action-record>
<action-record name="action-team-task-record-status-in-progress" model="com.axelor.team.db.TeamTask">
<field name="status" expr="in-progress"/>
</action-record>
<action-record name="action-team-task-record-status-closed" model="com.axelor.team.db.TeamTask">
<field name="status" expr="closed"/>
</action-record>
<action-record name="action-team-task-record-status-canceled" model="com.axelor.team.db.TeamTask">
<field name="status" expr="canceled"/>
</action-record>
<action-record name="action-team-task-record-product-selected" model="com.axelor.team.db.TeamTask">
<field name="quantity" expr="1"/>
<field name="unit" expr="eval: product?.salesUnit ?: product?.unit"/>
<field name="unitPrice" expr="eval: product?.salePrice"/>
<field name="currency" expr="eval: product?.saleCurrency"/>
</action-record>
<action-method name="action-team-task-method-manage-timer-buttons">
<call class="com.axelor.apps.project.web.TeamTaskController" method="manageTimerButtons"/>
</action-method>
<action-method name="action-team-task-method-compute-total-timer-duration">
<call class="com.axelor.apps.project.web.TeamTaskController"
method="computeTotalTimerDuration"/>
</action-method>
<action-group name="action-team-task-group-timer-process">
<action name="action-team-task-method-manage-timer-buttons" if="timerList != null &amp;&amp; !timerList.isEmpty()"/>
<action name="action-team-task-method-compute-total-timer-duration" if="timerList != null &amp;&amp; !timerList.isEmpty()"/>
<action name="action-team-task-attrs-scale-and-precision" if="__config__.app.isApp('business-project')"/>
<action name="action-team-task-business-support-provider" if="__config__.app.isApp('business-support')"/>
<action name="action-project-attrs-project-planning-time-cancel-remove"/>
</action-group>
<action-group name="action-team-task-group-project-category-onchange">
<action name="action-team-task-method-onchange-category" if="__config__.app.isApp('business-project')" />
</action-group>
<action-method name="action-team-task-method-start-timer">
<call class="com.axelor.apps.project.web.TeamTaskController" method="startTimer"/>
</action-method>
<action-method name="action-team-task-method-stop-timer">
<call class="com.axelor.apps.project.web.TeamTaskController" method="stopTimer"/>
</action-method>
<action-method name="action-team-task-method-cancel-timer">
<call class="com.axelor.apps.project.web.TeamTaskController" method="cancelTimer"/>
</action-method>
<action-method name="action-team-task-method-onchange-category">
<call class="com.axelor.apps.businessproject.web.TeamTaskController" method="onChangeCategory"/>
</action-method>
<action-attrs name="action-team-task-attrs-invoice-type-on-change">
<attribute name="value" for="toInvoice" expr="eval: true" if="invoicingType == 1"/>
<attribute name="value" for="toInvoice" expr="eval: false" if="invoicingType != 1"/>
<attribute name="value" for="isOrderProposed" expr="eval: true" if="invoicingType == 1"/>
<attribute name="value" for="isOrderProposed" expr="eval: false" if="invoicingType != 1"/>
</action-attrs>
<action-attrs name="action-team-task-attrs-assginment-customer">
<attribute name="value" for="assignment" expr="eval: 1"/>
</action-attrs>
<action-attrs name="action-team-task-attrs-assginment-provider">
<attribute name="value" for="assignment" expr="eval: 2"/>
</action-attrs>
<action-view name="action-team-task-dashlet-project-planning-time" title="Planned Time Planning" model="com.axelor.apps.project.db.ProjectPlanningTime">
<view type="grid" name="project-planning-time-grid"/>
<view type="form" name="project-planning-time-form"/>
<view-param name="popup" value="true"/>
<domain>self.task.id = :id</domain>
</action-view>
<action-attrs name="action-team-task-attrs-project-planning-time-remove">
<attribute name="readonly" for="removeProjectPlanningTimeLineBtn" expr="eval:true"/>
<attribute name="hidden" for="cancelRemovePlanningTimeBtn" expr="eval:false"/>
<attribute name="hidden" for="removeSelectedPlanningTimeBtn" expr="eval:false"/>
<attribute name="hidden" for="$projectPlanningTimeSet" expr="eval:false"/>
<attribute name="value" for="$projectPlanningTimeSet" expr="eval:null"/>
<attribute name="title" for="$projectPlanningTimeSet" expr="eval:com.axelor.i18n.I18n.get('Select lines to remove')"/>
<attribute name="domain" for="$projectPlanningTimeSet" expr="eval:&quot;self.task.id = :id&quot;"/>
</action-attrs>
</object-views>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="team-task-category-grid" title="Category" model="com.axelor.apps.project.db.TeamTaskCategory">
<field name="name"/>
<field name="defaultInvoicingType" if="__config__.app.isApp('business-project')" if-module="axelor-business-project"/>
</grid>
<form title="Category" name="team-task-category-form" model="com.axelor.apps.project.db.TeamTaskCategory">
<panel name="mainPanel">
<field name="name"/>
<field name="defaultProduct" domain="self.unit.unitTypeSelect=3" form-view="product-form" grid-view="product-grid" if="__config__.app.isApp('business-project')" if-module="axelor-business-project"/>
<field name="defaultInvoicingType" if="__config__.app.isApp('business-project')" if-module="axelor-business-project" validIf="$number(defaultInvoicingType) > 0"/>
</panel>
</form>
</object-views>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
<grid name="wiki-grid" title="Wiki" model="com.axelor.apps.project.db.Wiki">
<field name="title"/>
<field name="content"/>
<field name="project"/>
</grid>
<grid title="Wiki" name="wiki-grid-incl-project" model="com.axelor.apps.project.db.Wiki">
<field name="title"/>
<field name="content"/>
</grid>
<form name="wiki-form" title="Wiki" model="com.axelor.apps.project.db.Wiki" width="large" onNew="action-business-support-attrs-project-default">
<panel name="mainPanel">
<field name="title" colSpan="6"/>
<field name="project" colSpan="6" canEdit="false"/>
<field name="content" widget="HTML" colSpan="12"/>
</panel>
</form>
</object-views>

View File

@ -0,0 +1,6 @@
{
"main.css": "static/css/main.1db85911.css",
"main.css.map": "static/css/main.1db85911.css.map",
"main.js": "static/js/main.22f4edf5.js",
"main.js.map": "static/js/main.22f4edf5.js.map"
}

View File

@ -0,0 +1 @@
<!DOCTYPE html><html lang="en" style="height:100%"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"><script src="../../js/messages.js"></script><script src="../../lib/jquery.ui/js/jquery.js"></script><script src="../../js/axelor.ns.js"></script><script src="../../js/lib/i18n.js"></script><title>Project Planning</title><link href="./static/css/main.1db85911.css" rel="stylesheet"></head><body><div id="root"></div><script type="text/javascript" src="./static/js/main.22f4edf5.js"></script></body></html>

View File

@ -0,0 +1,19 @@
/**
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
.App{text-align:center}.App-logo{-webkit-animation:App-logo-spin infinite 20s linear;animation:App-logo-spin infinite 20s linear;height:80px}.App-header{background-color:#222;height:150px;padding:20px;color:#fff}.App-intro{font-size:large}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.navbar{margin-bottom:0}.nonActive{background-color:transparent;color:gray}.activeLabel{background-color:#eeedee}.mode-label{padding:12px;font-size:12px;float:left;cursor:pointer;color:#0275d8}.mode-label:hover{background-color:#f1f1f1;color:#0275d8}.show-grid{border-top:1px solid #ddd}.duration-content{width:3600px;height:100%}.cell-height{height:25px}.task-content{width:30%;border-left:1px solid #ddd}.footer-content,.task-content{display:inline-block;background-color:#fff;border-bottom:1px solid #ddd}.footer-content{border-right:1px solid #ddd}.collapseIcon{margin-right:5px;font-size:13px;cursor:pointer}.duration-input{background-color:#fff;width:100%;border:0;text-align:center}.duration-input:hover{border-radius:3px}.task-footer{background-color:#fff;text-align:end;height:50px}.text-content{text-align:left}.cell-height:focus{border:1px solid #000}.timesheet-content{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 3% 0 0}.content-view{padding:10px}.cell-header{background-color:#fff}.footer-context{text-align:center}.addLine{padding:5px 10px;margin-left:10px;float:left}.addLine,.navigation{background-color:#0275d8;border:none}.navigation{padding:7px 12px}.loader{border:16px solid #f3f3f3;border-top:16px solid #3498db;border-radius:50%;width:120px;height:120px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.normal{color:#000!important}.success{color:green!important}.danger{color:red!important}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@media only screen and (max-width:992px){.task-content{max-width:30%;-webkit-box-flex:1;-ms-flex:1;flex:1}}body{margin:0;padding:0;font-family:sans-serif}
/*# sourceMappingURL=main.1db85911.css.map*/

View File

@ -0,0 +1 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"static/css/main.1db85911.css","sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long